Pollen-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
May 2014
- 5 participants
- 203 discussions
This is an automated email from the git hooks/post-receive script.
unknown user pushed a commit to branch devel
in repository Pollen.
commit 02f977fb3ae2572b09b8742028730240883fa2c2
Author: Tony CHEMIT <chemit(a)codelutin.com>
Date: Thu May 22 16:44:42 2014 +0200
fix runtime dep
---
pollen-rest-api/pom.xml | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/pollen-rest-api/pom.xml b/pollen-rest-api/pom.xml
index 8e0c599..8b8ee50 100644
--- a/pollen-rest-api/pom.xml
+++ b/pollen-rest-api/pom.xml
@@ -26,6 +26,13 @@
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
+ <artifactId>pollen-votecounting-aggregator</artifactId>
+ <version>${project.version}</version>
+ <type>pom</type>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
<artifactId>pollen-persistence</artifactId>
<version>${project.version}</version>
</dependency>
--
To stop receiving notification emails like this one, please contact
Chorem.org SCM administrator <admin+scm(a)chorem.org>.
1
0
This is an automated email from the git hooks/post-receive script.
unknown user pushed a commit to branch devel
in repository Pollen.
commit 6b56ad5fecf4d12010c1fa37652300e435fcfe17
Author: Tony CHEMIT <chemit(a)codelutin.com>
Date: Thu May 22 16:30:37 2014 +0200
fix build + improve gitignore
---
.gitignore | 3 ++-
pollen-services/pom.xml | 1 +
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/.gitignore b/.gitignore
index 48de85c..5a36c89 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,7 +5,8 @@
atlassian-ide-plugin.xml
target/*
*/target/*
-
+*~
+*/*~
pollen-ui-angular/src/main/webapp/js/conf.js
pollen-ui-js/src/main/webapp/pollen-ui-js.css
diff --git a/pollen-services/pom.xml b/pollen-services/pom.xml
index 668add6..bb00f0a 100644
--- a/pollen-services/pom.xml
+++ b/pollen-services/pom.xml
@@ -25,6 +25,7 @@
<groupId>${project.groupId}</groupId>
<artifactId>pollen-votecounting-aggregator</artifactId>
<version>${project.version}</version>
+ <type>pom</type>
<scope>test</scope>
</dependency>
<dependency>
--
To stop receiving notification emails like this one, please contact
Chorem.org SCM administrator <admin+scm(a)chorem.org>.
1
0
This is an automated email from the git hooks/post-receive script.
unknown user pushed a commit to branch devel
in repository Pollen.
commit c6b78dfab0a087655078779d102d8b64661b3586
Author: Tony CHEMIT <chemit(a)codelutin.com>
Date: Thu May 22 13:24:31 2014 +0200
vote counting service
---
pollen-rest-api/pom.xml | 5 +
.../rest/api/PollenRestApiApplicationContext.java | 15 ++
.../chorem/pollen/rest/api/v1/VoteCountingApi.java | 14 +-
.../pollen/rest/api/AbstractPollenRestApiTest.java | 3 +-
pollen-services/pom.xml | 11 ++
.../services/DefaultPollenServiceContext.java | 12 ++
.../pollen/services/PollenApplicationContext.java | 3 +
.../pollen/services/PollenServiceContext.java | 3 +
.../pollen/services/bean/PollResultBean.java | 38 ----
.../org/chorem/pollen/services/bean/VoteBean.java | 39 ++++
.../services/service/VoteCountingService.java | 205 ++++++++++++++++++++-
.../pollen/services/service/VoteService.java | 33 +++-
.../pollen/services/service/VoterListService.java | 15 +-
.../services/service/security/PermissionVerb.java | 2 +
.../test/FakePollenApplicationContext.java | 17 +-
.../services/test/FakePollenServiceContext.java | 6 +-
.../services/service/VoteCountingServiceTest.java | 126 +++++++++++++
17 files changed, 493 insertions(+), 54 deletions(-)
diff --git a/pollen-rest-api/pom.xml b/pollen-rest-api/pom.xml
index 4680c26..8e0c599 100644
--- a/pollen-rest-api/pom.xml
+++ b/pollen-rest-api/pom.xml
@@ -21,6 +21,11 @@
<dependency>
<groupId>${project.groupId}</groupId>
+ <artifactId>pollen-votecounting-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
<artifactId>pollen-persistence</artifactId>
<version>${project.version}</version>
</dependency>
diff --git a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/PollenRestApiApplicationContext.java b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/PollenRestApiApplicationContext.java
index 0ffb9c3..bd2a0a7 100644
--- a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/PollenRestApiApplicationContext.java
+++ b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/PollenRestApiApplicationContext.java
@@ -44,6 +44,7 @@ import org.chorem.pollen.services.service.PollenUserService;
import org.chorem.pollen.services.service.security.DefaultPollenSecurityContext;
import org.chorem.pollen.services.service.security.PollenSecurityContext;
import org.chorem.pollen.services.service.security.PollenSecurityRealm;
+import org.chorem.pollen.votecounting.VoteCountingFactory;
import org.nuiton.i18n.I18n;
import org.nuiton.i18n.init.DefaultI18nInitializer;
import org.nuiton.i18n.init.I18nInitializer;
@@ -108,6 +109,8 @@ public class PollenRestApiApplicationContext implements PollenApplicationContext
protected PollenServiceConfig applicationConfig;
+ protected VoteCountingFactory voteCountingFactory;
+
protected PollenRestApiApplicationContext(PollenServiceConfig applicationConfig, PollenTopiaApplicationContext topiaApplicationContext) {
Preconditions.checkNotNull(applicationConfig, "Configuration can not be null!");
@@ -130,6 +133,17 @@ public class PollenRestApiApplicationContext implements PollenApplicationContext
}
@Override
+ public VoteCountingFactory getVoteCountingFactory() {
+
+ if (voteCountingFactory == null) {
+ voteCountingFactory = new VoteCountingFactory();
+ }
+
+ return voteCountingFactory;
+
+ }
+
+ @Override
public PollenTopiaPersistenceContext newPersistenceContext() {
PollenTopiaPersistenceContext persistenceContext = topiaApplicationContext.newPersistenceContext();
@@ -144,6 +158,7 @@ public class PollenRestApiApplicationContext implements PollenApplicationContext
newServiceContext.setPollenServiceConfig(applicationConfig);
newServiceContext.setTopiaApplicationContext(topiaApplicationContext);
newServiceContext.setPersistenceContext(persistenceContext);
+ newServiceContext.setVoteCountingFactory(getVoteCountingFactory());
newServiceContext.setLocale(locale);
return newServiceContext;
diff --git a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/VoteCountingApi.java b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/VoteCountingApi.java
index cd95fbc..2db98ed 100644
--- a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/VoteCountingApi.java
+++ b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/VoteCountingApi.java
@@ -23,8 +23,9 @@ package org.chorem.pollen.rest.api.v1;
* #L%
*/
-import org.chorem.pollen.services.bean.PollResultBean;
import org.chorem.pollen.services.service.VoteCountingService;
+import org.chorem.pollen.votecounting.model.GroupVoteCountingResult;
+import org.chorem.pollen.votecounting.model.VoteCountingResult;
import org.debux.webmotion.server.WebMotionController;
/**
@@ -35,9 +36,16 @@ import org.debux.webmotion.server.WebMotionController;
*/
public class VoteCountingApi extends WebMotionController {
- public PollResultBean getResult(VoteCountingService voteCountingService, String pollId) {
+ public VoteCountingResult getMainResult(VoteCountingService voteCountingService, String pollId) {
- PollResultBean result = voteCountingService.getResult(pollId);
+ VoteCountingResult result = voteCountingService.getMainResult(pollId);
+ return result;
+
+ }
+
+ public GroupVoteCountingResult getGroupResult(VoteCountingService voteCountingService, String pollId) {
+
+ GroupVoteCountingResult result = voteCountingService.getGroupResult(pollId);
return result;
}
diff --git a/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/AbstractPollenRestApiTest.java b/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/AbstractPollenRestApiTest.java
index 1715191..7fafbbe 100644
--- a/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/AbstractPollenRestApiTest.java
+++ b/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/AbstractPollenRestApiTest.java
@@ -93,7 +93,8 @@ public class AbstractPollenRestApiTest extends WebMotionTest {
Locale.FRANCE,
application.getApplicationConfig(),
application.getTopiaApplicationContext(),
- application.newPersistenceContext());
+ application.newPersistenceContext(),
+ application.getVoteCountingFactory());
return serviceContext;
}
diff --git a/pollen-services/pom.xml b/pollen-services/pom.xml
index 8f5dfdf..668add6 100644
--- a/pollen-services/pom.xml
+++ b/pollen-services/pom.xml
@@ -18,6 +18,17 @@
<dependency>
<groupId>${project.groupId}</groupId>
+ <artifactId>pollen-votecounting-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>pollen-votecounting-aggregator</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
<artifactId>pollen-persistence</artifactId>
<version>${project.version}</version>
</dependency>
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/DefaultPollenServiceContext.java b/pollen-services/src/main/java/org/chorem/pollen/services/DefaultPollenServiceContext.java
index 245a356..08eef5d 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/DefaultPollenServiceContext.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/DefaultPollenServiceContext.java
@@ -37,6 +37,7 @@ import org.chorem.pollen.persistence.PollenPersistenceContext;
import org.chorem.pollen.persistence.PollenTopiaApplicationContext;
import org.chorem.pollen.services.config.PollenServiceConfig;
import org.chorem.pollen.services.service.security.PollenSecurityContext;
+import org.chorem.pollen.votecounting.VoteCountingFactory;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
@@ -61,6 +62,8 @@ public class DefaultPollenServiceContext implements PollenServiceContext {
*/
protected DefaultHashService hashService;
+ protected VoteCountingFactory voteCountingFactory;
+
public void setPollenServiceConfig(PollenServiceConfig pollenServiceConfig) {
this.pollenServiceConfig = pollenServiceConfig;
}
@@ -154,6 +157,15 @@ public class DefaultPollenServiceContext implements PollenServiceContext {
}
@Override
+ public VoteCountingFactory getVoteCountingFactory() {
+ return voteCountingFactory;
+ }
+
+ public void setVoteCountingFactory(VoteCountingFactory voteCountingFactory) {
+ this.voteCountingFactory = voteCountingFactory;
+ }
+
+ @Override
public PollenPersistenceContext getPersistenceContext() {
return persistenceContext;
}
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/PollenApplicationContext.java b/pollen-services/src/main/java/org/chorem/pollen/services/PollenApplicationContext.java
index 514c601..ec5d09f 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/PollenApplicationContext.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/PollenApplicationContext.java
@@ -28,6 +28,7 @@ import org.chorem.pollen.persistence.entity.PollenPrincipal;
import org.chorem.pollen.persistence.entity.SessionToken;
import org.chorem.pollen.services.config.PollenServiceConfig;
import org.chorem.pollen.services.service.security.PollenSecurityContext;
+import org.chorem.pollen.votecounting.VoteCountingFactory;
import java.io.Closeable;
import java.util.Locale;
@@ -44,6 +45,8 @@ public interface PollenApplicationContext extends Closeable {
PollenServiceConfig getApplicationConfig();
+ VoteCountingFactory getVoteCountingFactory();
+
PollenTopiaPersistenceContext newPersistenceContext();
PollenServiceContext newServiceContext(PollenPersistenceContext persistenceContext, Locale locale);
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/PollenServiceContext.java b/pollen-services/src/main/java/org/chorem/pollen/services/PollenServiceContext.java
index 7d95782..ac196b4 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/PollenServiceContext.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/PollenServiceContext.java
@@ -27,6 +27,7 @@ import org.chorem.pollen.persistence.PollenPersistenceContext;
import org.chorem.pollen.persistence.PollenTopiaApplicationContext;
import org.chorem.pollen.services.config.PollenServiceConfig;
import org.chorem.pollen.services.service.security.PollenSecurityContext;
+import org.chorem.pollen.votecounting.VoteCountingFactory;
import java.util.Date;
import java.util.Locale;
@@ -62,4 +63,6 @@ public interface PollenServiceContext {
String generateSalt();
String encodePassword(String salt, String password);
+
+ VoteCountingFactory getVoteCountingFactory();
}
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/bean/PollResultBean.java b/pollen-services/src/main/java/org/chorem/pollen/services/bean/PollResultBean.java
deleted file mode 100644
index 7f854bd..0000000
--- a/pollen-services/src/main/java/org/chorem/pollen/services/bean/PollResultBean.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package org.chorem.pollen.services.bean;
-
-/*
- * #%L
- * Pollen :: Service
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2009 - 2013 CodeLutin
- * %%
- * 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 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/>.
- * #L%
- */
-
-import java.io.Serializable;
-
-/**
- * TODO
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 2.0
- */
-public class PollResultBean implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
-}
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/bean/VoteBean.java b/pollen-services/src/main/java/org/chorem/pollen/services/bean/VoteBean.java
index ff99433..6cf20cd 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/bean/VoteBean.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/bean/VoteBean.java
@@ -1,11 +1,14 @@
package org.chorem.pollen.services.bean;
+import org.apache.commons.lang3.StringUtils;
import org.chorem.pollen.persistence.entity.PollenPrincipal;
import org.chorem.pollen.persistence.entity.PollenPrincipalImpl;
import org.chorem.pollen.persistence.entity.Vote;
import org.chorem.pollen.persistence.entity.VoteImpl;
import org.chorem.pollen.persistence.entity.VoteToChoice;
import org.chorem.pollen.persistence.entity.VoteToChoices;
+import org.chorem.pollen.persistence.entity.VoterListMember;
+import org.chorem.pollen.persistence.entity.VoterListMemberImpl;
import java.util.ArrayList;
import java.util.LinkedHashSet;
@@ -24,12 +27,16 @@ public class VoteBean extends PollenBean<Vote> {
protected String voterId;
+ protected String voterListMemberId;
+
protected String voterName;
protected String permission;
protected Boolean anonymous;
+ protected double weight;
+
protected Set<VoteToChoiceBean> choice = new LinkedHashSet<>();
@Override
@@ -50,6 +57,7 @@ public class VoteBean extends PollenBean<Vote> {
setAnonymous(vote.isAnonymous());
setVoterId(vote.getVoter().getTopiaId());
setVoterName(vote.getVoter().getName());
+ setWeight(vote.getWeight());
List<VoteToChoice> voteToChoices = new ArrayList<>(vote.getVoteToChoice());
VoteToChoices.sortByChoiceOrder(voteToChoices);
@@ -62,6 +70,12 @@ public class VoteBean extends PollenBean<Vote> {
}
+ if (vote.getVoterListMember() != null) {
+
+ setVoterListMemberId(vote.getVoterListMember().getTopiaId());
+
+ }
+
}
@Override
@@ -71,6 +85,7 @@ public class VoteBean extends PollenBean<Vote> {
entity.setTopiaId(getId());
entity.setAnonymous(getAnonymous() != null && getAnonymous());
+ entity.setWeight(getWeight());
PollenPrincipal voter = new PollenPrincipalImpl();
entity.setVoter(voter);
@@ -84,6 +99,14 @@ public class VoteBean extends PollenBean<Vote> {
}
+ if (StringUtils.isNotBlank(voterListMemberId)) {
+
+ // FIXME
+ VoterListMember member = new VoterListMemberImpl();
+ member.setTopiaId(voterListMemberId);
+
+ }
+
return entity;
}
@@ -131,4 +154,20 @@ public class VoteBean extends PollenBean<Vote> {
public boolean isAnonymous() {
return anonymous != null && anonymous;
}
+
+ public String getVoterListMemberId() {
+ return voterListMemberId;
+ }
+
+ public void setVoterListMemberId(String voterListMemberId) {
+ this.voterListMemberId = voterListMemberId;
+ }
+
+ public double getWeight() {
+ return weight;
+ }
+
+ public void setWeight(double weight) {
+ this.weight = weight;
+ }
}
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteCountingService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteCountingService.java
index 0921474..cd3a08d 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteCountingService.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteCountingService.java
@@ -23,9 +23,29 @@ package org.chorem.pollen.services.service;
* #L%
*/
+import com.google.common.base.Function;
import com.google.common.base.Preconditions;
+import com.google.common.collect.Maps;
import org.chorem.pollen.persistence.entity.Poll;
-import org.chorem.pollen.services.bean.PollResultBean;
+import org.chorem.pollen.persistence.entity.Polls;
+import org.chorem.pollen.persistence.entity.Vote;
+import org.chorem.pollen.persistence.entity.VoteToChoice;
+import org.chorem.pollen.persistence.entity.VoterList;
+import org.chorem.pollen.persistence.entity.VoterListMember;
+import org.chorem.pollen.votecounting.VoteCounting;
+import org.chorem.pollen.votecounting.VoteCountingFactory;
+import org.chorem.pollen.votecounting.VoteCountingStrategy;
+import org.chorem.pollen.votecounting.model.GroupOfVoter;
+import org.chorem.pollen.votecounting.model.GroupOfVoterBuilder;
+import org.chorem.pollen.votecounting.model.GroupVoteCountingResult;
+import org.chorem.pollen.votecounting.model.SimpleVoterBuilder;
+import org.chorem.pollen.votecounting.model.VoteCountingResult;
+import org.chorem.pollen.votecounting.model.Voter;
+import org.chorem.pollen.votecounting.model.VoterBuilder;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
/**
* TODO
@@ -35,10 +55,187 @@ import org.chorem.pollen.services.bean.PollResultBean;
*/
public class VoteCountingService extends PollenServiceSupport {
- public PollResultBean getResult(String pollId) {
+ public VoteCountingResult getMainResult(String pollId) {
+
Preconditions.checkNotNull(pollId);
+
+
Poll poll = getPollService().getPoll0(pollId);
- //TODO
- return null;
+
+ VoteCountingResult mainResult;
+
+ if (Polls.isPollGroup(poll)) {
+
+ GroupVoteCountingResult groupResult = getGroupResult(pollId);
+ mainResult = groupResult.getMainResult();
+
+ } else {
+ mainResult = getSimpleResult(pollId);
+
+ }
+
+ return mainResult;
+
}
+
+ public VoteCountingResult getSimpleResult(String pollId) {
+
+ Preconditions.checkNotNull(pollId);
+
+ Poll poll = getPollService().getPoll0(pollId);
+ List<Vote> votes = getVoteService().getVotes0(poll);
+
+ VoteCounting voteCounting = getVoteCounting(poll);
+ VoteCountingStrategy strategy = voteCounting.newStrategy();
+
+ GroupOfVoter groupOfVoter = toSimpleVotersGroup(votes);
+
+ GroupVoteCountingResult result = strategy.votecount(groupOfVoter);
+
+ VoteCountingResult mainResult = result.getMainResult();
+ return mainResult;
+
+ }
+
+ public GroupVoteCountingResult getGroupResult(String pollId) {
+
+ Preconditions.checkNotNull(pollId);
+
+ Poll poll = getPollService().getPoll0(pollId);
+ List<VoterList> voterLists = getVoterListService().getVoterLists0(poll);
+ List<Vote> votes = getVoteService().getVotes0(poll);
+
+ VoteCounting voteCounting = getVoteCounting(poll);
+ VoteCountingStrategy strategy = voteCounting.newStrategy();
+
+ // Create a groupVoter including of the root voters
+ GroupOfVoter group = toGroupOfVoters(poll, voterLists, votes);
+
+ GroupVoteCountingResult result = strategy.votecount(group);
+ return result;
+
+ }
+
+
+ /**
+ * Collect all vote for all voters of the givne poll.
+ * <p/>
+ * The result (a set of simple voters) are stored in a fictiv group of voter.
+ * <p/>
+ * <strong>Note:</strong> Even if the poll is a group type, then no of his
+ * group are used (just collect simple voters with no group linkage).
+ *
+ * @param votes votes to scan
+ * @return the aggregate group of voter containing simple voters with
+ * their votes.
+ */
+ protected GroupOfVoter toSimpleVotersGroup(List<Vote> votes) {
+
+ Preconditions.checkNotNull(votes);
+
+ SimpleVoterBuilder builder = new SimpleVoterBuilder();
+
+ for (Vote vote : votes) {
+
+ fillSimpleVoter(builder, vote);
+
+ }
+
+ Set<Voter> voter = builder.getVoters();
+
+ GroupOfVoter result = GroupOfVoter.newVoter(null, 1.0, voter);
+ return result;
+
+ }
+
+ /**
+ * Build the group of voter of the poll, using his group to build sub
+ * group of the poll.
+ * <p/>
+ * <strong>Note:</strong> This method can only be used for a group poll.
+ *
+ * @param poll the poll to scan
+ * @param voterLists voterLists to scan
+ * @param votes votes to scan
+ * @return the aggregate group of group of voters with their votes
+ */
+ protected GroupOfVoter toGroupOfVoters(Poll poll, List<VoterList> voterLists, List<Vote> votes) {
+
+ Preconditions.checkNotNull(poll);
+ Preconditions.checkNotNull(voterLists);
+ Preconditions.checkNotNull(votes);
+ Preconditions.checkArgument(Polls.isPollGroup(poll),
+ "Can only use this method for a group poll");
+
+ GroupOfVoterBuilder builder = new GroupOfVoterBuilder();
+
+ // create group of voter
+ Map<VoterListMember, Vote> voteByVoterListMember = Maps.uniqueIndex(
+ votes,
+ new Function<Vote, VoterListMember>() {
+ @Override
+ public VoterListMember apply(Vote input) {
+ return input.getVoterListMember();
+ }
+ }
+ );
+
+ for (VoterList voterList : voterLists) {
+
+ builder.newGroupVoter(voterList.getTopiaId(),
+ voterList.getWeight());
+
+ for (VoterListMember voterListMember : voterList.getMember()) {
+
+ Vote vote = voteByVoterListMember.get(voterListMember);
+
+ if (vote != null) {
+
+ fillSimpleVoter(builder, vote);
+
+ }
+
+ }
+
+ }
+
+ Set<Voter> voter = builder.getVoters();
+
+ GroupOfVoter result = GroupOfVoter.newVoter(null, 1.0, voter);
+ return result;
+
+ }
+
+ protected void fillSimpleVoter(VoterBuilder builder, Vote vote) {
+
+ builder.newVoter(vote.getVoter().getTopiaId(), vote.getWeight());
+
+ if (!vote.isVoteToChoiceEmpty()) {
+
+ for (VoteToChoice voteToChoice : vote.getVoteToChoice()) {
+
+ builder.addVoteForChoice(
+ voteToChoice.getChoice().getTopiaId(),
+ voteToChoice.getVoteValue());
+
+ }
+
+ }
+
+ }
+
+ protected VoteCounting getVoteCounting(Poll poll) {
+
+ int id = poll.getVoteCountingType();
+
+ VoteCountingFactory voteCountingFactory = serviceContext.getVoteCountingFactory();
+ VoteCounting result = voteCountingFactory.getVoteCounting(id);
+
+ Preconditions.checkNotNull(
+ result, "Could not find vote counting for id " + id);
+
+ return result;
+
+ }
+
}
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteService.java
index d75da00..129cc61 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteService.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteService.java
@@ -23,6 +23,7 @@ package org.chorem.pollen.services.service;
* #L%
*/
+import org.apache.commons.lang3.StringUtils;
import org.chorem.pollen.persistence.entity.Choice;
import org.chorem.pollen.persistence.entity.Poll;
import org.chorem.pollen.persistence.entity.PollenPrincipal;
@@ -53,7 +54,7 @@ public class VoteService extends PollenServiceSupport {
checkNotNull(pollId);
Poll poll = getPollService().getPoll0(pollId);
- List<Vote> votes = getVoteDao().findAll(poll);
+ List<Vote> votes = getVotes0(poll);
List<VoteBean> voteBeans = copyAsList(VoteBean.class, votes);
for (VoteBean voteBean : voteBeans) {
@@ -191,6 +192,29 @@ public class VoteService extends PollenServiceSupport {
// toSave.setText(vote.getText());
//
+ // -- weight -- //
+
+ if (!voteExist) {
+
+ double weight;
+
+ if (StringUtils.isBlank(vote.getVoterListMemberId())) {
+
+ // not link to a member, use default value
+
+ weight = 1d;
+
+ } else {
+
+ //FIXME Get member and his weight
+ weight = 1d;
+
+ }
+
+ toSave.setWeight(weight);
+
+ }
+
// -- author -- //
toSave.getVoter().setName(vote.getVoterName());
@@ -231,6 +255,13 @@ public class VoteService extends PollenServiceSupport {
}
+ protected List<Vote> getVotes0(Poll poll) {
+
+ List<Vote> votes = getVoteDao().findAll(poll);
+ return votes;
+
+ }
+
protected VoteToChoice getVoteToChoice(Vote vote, String voteToChoiceId) {
VoteToChoice result = getVoteToChoiceDao().findByTopiaId(voteToChoiceId);
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/VoterListService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/VoterListService.java
index d34d307..dd6ceb9 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/service/VoterListService.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/VoterListService.java
@@ -88,7 +88,7 @@ public class VoterListService extends PollenServiceSupport {
checkNotNull(pollId);
Poll poll = getPollService().getPoll0(pollId);
- List<VoterList> voterLists = getVoterListDao().forPollEquals(poll).findAll();
+ List<VoterList> voterLists = getVoterLists0(poll);
List<VoterListBean> voterListBeans = copyAsList(VoterListBean.class, voterLists);
return voterListBeans;
@@ -113,7 +113,7 @@ public class VoterListService extends PollenServiceSupport {
Poll poll = getPollService().getPoll0(pollId);
- List<VoterList> existingVoterLists = getVoterListDao().forPollEquals(poll).findAll();
+ List<VoterList> existingVoterLists = getVoterLists0(poll);
ErrorMap errorMap = checkVoterList(existingVoterLists, voterList);
errorMap.failIfNotEmpty();
@@ -137,7 +137,7 @@ public class VoterListService extends PollenServiceSupport {
Poll poll = getPollService().getPoll0(pollId);
- List<VoterList> existingVoterLists = getVoterListDao().forPollEquals(poll).findAll();
+ List<VoterList> existingVoterLists = getVoterLists0(poll);
ErrorMap errorMap = checkVoterList(existingVoterLists, voterList);
errorMap.failIfNotEmpty();
@@ -213,7 +213,6 @@ public class VoterListService extends PollenServiceSupport {
}
-
public VoterListMemberBean editVoterListMember(String pollId, String voterListId, VoterListMemberBean member) throws InvalidFormException {
checkNotNull(pollId);
@@ -236,6 +235,7 @@ public class VoterListService extends PollenServiceSupport {
}
+
public void deleteVoterListMember(String pollId, String voterListId, String memberId) {
checkNotNull(pollId);
@@ -250,6 +250,13 @@ public class VoterListService extends PollenServiceSupport {
}
+ protected List<VoterList> getVoterLists0(Poll poll) {
+
+ List<VoterList> voterLists = getVoterListDao().forPollEquals(poll).findAll();
+ return voterLists;
+
+ }
+
protected VoterList getVoterList(Poll poll, String voterListId) {
VoterList result = getVoterListDao().findByTopiaId(voterListId);
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/security/PermissionVerb.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/security/PermissionVerb.java
index 7bf249c..b16f99b 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/service/security/PermissionVerb.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/security/PermissionVerb.java
@@ -30,10 +30,12 @@ package org.chorem.pollen.services.service.security;
* @since 2.0
*/
public enum PermissionVerb {
+
readPoll,
readChoice,
readComment,
readVote,
+ readPollResult,
addPoll,
addChoice,
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/test/FakePollenApplicationContext.java b/pollen-services/src/main/java/org/chorem/pollen/services/test/FakePollenApplicationContext.java
index 17f9fd4..eba5700 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/test/FakePollenApplicationContext.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/test/FakePollenApplicationContext.java
@@ -39,6 +39,7 @@ import org.chorem.pollen.services.config.PollenServiceConfig;
import org.chorem.pollen.services.config.PollenServiceConfigOption;
import org.chorem.pollen.services.service.FixturesService;
import org.chorem.pollen.services.service.security.PollenSecurityRealm;
+import org.chorem.pollen.votecounting.VoteCountingFactory;
import org.junit.rules.TestWatcher;
import org.junit.runner.Description;
import org.nuiton.topia.junit.ConfigurationHelper;
@@ -75,6 +76,8 @@ public class FakePollenApplicationContext extends TestWatcher implements PollenA
protected PollenFixtures fixtures;
+ protected VoteCountingFactory voteCountingFactory;
+
protected String methodName;
protected int currentPortNumber;
@@ -178,6 +181,17 @@ public class FakePollenApplicationContext extends TestWatcher implements PollenA
}
@Override
+ public VoteCountingFactory getVoteCountingFactory() {
+
+ if (voteCountingFactory == null) {
+ voteCountingFactory = new VoteCountingFactory();
+ }
+
+ return voteCountingFactory;
+
+ }
+
+ @Override
public PollenTopiaPersistenceContext newPersistenceContext() {
PollenTopiaPersistenceContext persistenceContext;
@@ -202,7 +216,8 @@ public class FakePollenApplicationContext extends TestWatcher implements PollenA
Locale.FRANCE,
getApplicationConfig(),
getTopiaApplicationContext(),
- newPersistenceContext());
+ newPersistenceContext(),
+ getVoteCountingFactory());
return serviceContext;
}
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/test/FakePollenServiceContext.java b/pollen-services/src/main/java/org/chorem/pollen/services/test/FakePollenServiceContext.java
index f0609d2..e4876b0 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/test/FakePollenServiceContext.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/test/FakePollenServiceContext.java
@@ -30,7 +30,7 @@ import org.chorem.pollen.persistence.PollenTopiaApplicationContext;
import org.chorem.pollen.persistence.PollenTopiaPersistenceContext;
import org.chorem.pollen.services.DefaultPollenServiceContext;
import org.chorem.pollen.services.config.PollenServiceConfig;
-import org.chorem.pollen.services.service.security.PollenSecurityContext;
+import org.chorem.pollen.votecounting.VoteCountingFactory;
import java.util.Date;
import java.util.Locale;
@@ -47,11 +47,13 @@ public class FakePollenServiceContext extends DefaultPollenServiceContext {
Locale locale,
PollenServiceConfig serviceConfig,
PollenTopiaApplicationContext applicationcontext,
- PollenTopiaPersistenceContext persistenceContext) {
+ PollenTopiaPersistenceContext persistenceContext,
+ VoteCountingFactory voteCountingFactory) {
FakePollenServiceContext serviceContext = new FakePollenServiceContext();
serviceContext.setPersistenceContext(persistenceContext);
serviceContext.setPollenServiceConfig(serviceConfig);
serviceContext.setTopiaApplicationContext(applicationcontext);
+ serviceContext.setVoteCountingFactory(voteCountingFactory);
serviceContext.setSecurityContext(new FakePollenSecurityContext());
serviceContext.setLocale(locale);
serviceContext.setDate(now);
diff --git a/pollen-services/src/test/java/org/chorem/pollen/services/service/VoteCountingServiceTest.java b/pollen-services/src/test/java/org/chorem/pollen/services/service/VoteCountingServiceTest.java
new file mode 100644
index 0000000..15c8554
--- /dev/null
+++ b/pollen-services/src/test/java/org/chorem/pollen/services/service/VoteCountingServiceTest.java
@@ -0,0 +1,126 @@
+package org.chorem.pollen.services.service;
+
+import org.apache.commons.lang3.time.DateUtils;
+import org.chorem.pollen.persistence.entity.ChoiceType;
+import org.chorem.pollen.persistence.entity.PollType;
+import org.chorem.pollen.services.AbstractPollenServiceTest;
+import org.chorem.pollen.services.bean.ChoiceBean;
+import org.chorem.pollen.services.bean.CreateBeanRef;
+import org.chorem.pollen.services.bean.PollBean;
+import org.chorem.pollen.services.bean.VoteBean;
+import org.chorem.pollen.services.bean.VoteToChoiceBean;
+import org.chorem.pollen.votecounting.model.ChoiceScore;
+import org.chorem.pollen.votecounting.model.VoteCountingResult;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.math.BigDecimal;
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Created on 5/22/14.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since 2.0
+ */
+public class VoteCountingServiceTest extends AbstractPollenServiceTest {
+
+ private PollService pollService;
+
+ private ChoiceService choiceService;
+
+ private VoteService voteService;
+
+ private VoteCountingService service;
+
+ @Before
+ public void setUp() throws ParseException {
+
+ loadFixtures("fixtures");
+
+ pollService = newService(PollService.class);
+ voteService = newService(VoteService.class);
+ choiceService = newService(ChoiceService.class);
+ service = newService(VoteCountingService.class);
+
+ getServiceContext().setDate(new Date(1363948427576l));
+
+ }
+
+ @Test
+ public void simplePoll() throws InvalidFormException {
+
+ PollBean poll = pollService.getNewPoll();
+
+ poll.setBeginDate(DateUtils.addMinutes(serviceContext.getNow(), -1));
+ poll.setTitle("poll1");
+
+ List<ChoiceBean> choices = new ArrayList<>();
+
+ ChoiceBean choice1 = new ChoiceBean();
+ choices.add(choice1);
+ choice1.setChoiceType(ChoiceType.TEXT);
+ choice1.setName("A");
+ choice1.setDescription("Choice A");
+
+
+ ChoiceBean choice2 = new ChoiceBean();
+ choice2.setChoiceType(ChoiceType.TEXT);
+ choice2.setName("B");
+ choice2.setDescription("Choice B");
+ choices.add(choice2);
+
+ CreateBeanRef createdPollRef = pollService.createPoll(poll, choices, null);
+
+ String pollId = createdPollRef.getId();
+
+ List<ChoiceBean> createdChoices = choiceService.getChoices(pollId);
+ ChoiceBean createdChoiceBean1 = createdChoices.get(0);
+ ChoiceBean createdChoiceBean2 = createdChoices.get(1);
+
+ // vote 1 (A = 1)
+ VoteBean vote1 = new VoteBean();
+ vote1.setVoterName("voter1");
+ VoteToChoiceBean vote1Choice1 = new VoteToChoiceBean();
+
+ vote1Choice1.setChoiceId(createdChoiceBean1.getId());
+ vote1Choice1.setVoteValue(1d);
+ vote1.addChoice(vote1Choice1);
+ voteService.addVote(pollId, vote1);
+
+ // vote 2 (B = 1)
+ VoteBean vote2 = new VoteBean();
+ vote2.setVoterName("voter2");
+ VoteToChoiceBean vote2Choice2 = new VoteToChoiceBean();
+ vote2Choice2.setChoiceId(createdChoiceBean2.getId());
+ vote2Choice2.setVoteValue(1d);
+ vote2.addChoice(vote2Choice2);
+ voteService.addVote(pollId, vote2);
+
+ // vote 3 (A = 1)
+ VoteBean vote3 = new VoteBean();
+ vote3.setVoterName("voter3");
+ VoteToChoiceBean vote3Choice1 = new VoteToChoiceBean();
+ vote3Choice1.setChoiceId(createdChoiceBean1.getId());
+ vote3Choice1.setVoteValue(1d);
+ vote3.addChoice(vote3Choice1);
+ voteService.addVote(pollId, vote3);
+
+ VoteCountingResult mainResult = service.getMainResult(pollId);
+ Assert.assertNotNull(mainResult);
+ Assert.assertNotNull(mainResult.getScores());
+ Assert.assertEquals(2, mainResult.getScores().size());
+ Assert.assertNotNull(mainResult.getTopRanking());
+ Assert.assertEquals(1, mainResult.getTopRanking().size());
+
+ ChoiceScore choiceScore = mainResult.getTopRanking().get(0);
+ Assert.assertEquals(createdChoiceBean1.getId(), choiceScore.getChoiceId());
+ Assert.assertEquals(2, choiceScore.getScoreValue().intValue());
+
+ }
+
+}
--
To stop receiving notification emails like this one, please contact
Chorem.org SCM administrator <admin+scm(a)chorem.org>.
1
0
This is an automated email from the git hooks/post-receive script.
unknown user pushed a commit to branch devel
in repository Pollen.
commit 4d1266d0a21c3328e78b046706f6f99b61f7c3e3
Author: Tony CHEMIT <chemit(a)codelutin.com>
Date: Thu May 22 12:14:43 2014 +0200
change error code when session token is expired
---
pollen-rest-api/src/main/resources/mapping | 5 ++-
.../services/service/security/SecurityService.java | 45 +++++++++++-----------
2 files changed, 26 insertions(+), 24 deletions(-)
diff --git a/pollen-rest-api/src/main/resources/mapping b/pollen-rest-api/src/main/resources/mapping
index dcfdb6f..38cd416 100644
--- a/pollen-rest-api/src/main/resources/mapping
+++ b/pollen-rest-api/src/main/resources/mapping
@@ -11,9 +11,9 @@ default.render=org.chorem.pollen.rest.api.PollenRender
[errors]
org.chorem.pollen.services.service.security.PollenAuthenticationException ErrorAction.on401
+org.chorem.pollen.services.service.security.PollenInvalidSessionTokenException ErrorAction.on401
org.chorem.pollen.services.service.security.PollenUnauthorizedException ErrorAction.on403
org.chorem.pollen.services.service.security.PollenInvalidPermissionException ErrorAction.on403
-org.chorem.pollen.services.service.security.PollenInvalidSessionTokenException ErrorAction.on401
org.chorem.pollen.services.service.security.PollenInvalidEmailActivationTokenException ErrorAction.on403
org.chorem.pollen.services.service.InvalidFormException ErrorAction.on400Form
org.nuiton.topia.persistence.TopiaNoResultException ErrorAction.on404
@@ -99,7 +99,8 @@ PUT /v1/users/{userId}?token={} PollenUserApi.validateUserEmail
# VoteCountingApi
-GET /v1/polls/{pollId}/results VoteCountingApi.getResult
+GET /v1/polls/{pollId}/results VoteCountingApi.getMainResult
+GET /v1/polls/{pollId}/groupResults VoteCountingApi.getGroupResult
# VoterListApi
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/security/SecurityService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/security/SecurityService.java
index d5c62cb..26641c9 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/service/security/SecurityService.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/security/SecurityService.java
@@ -178,7 +178,9 @@ public class SecurityService extends PollenServiceSupport {
sessionToken = getSessionTokenDao().findUniqueOrNullByToken(token);
if (sessionToken == null) {
+
throw new PollenInvalidSessionTokenException();
+
}
// check that token is still valid
@@ -193,37 +195,36 @@ public class SecurityService extends PollenServiceSupport {
}
getSessionTokenDao().delete(sessionToken);
commit();
- sessionToken = null;
-
- } else {
- int sessionTimeout = getPollenServiceConfig().getSessionTimeoutDelay();
+ throw new PollenInvalidSessionTokenException();
- Calendar calendar = Calendar.getInstance();
- // From now
- calendar.setTimeInMillis(now.getTime());
- // add session timeout delay
- calendar.add(Calendar.SECOND, sessionTimeout);
- // retrieve 5 minutes
- calendar.add(Calendar.MINUTE, -5);
+ }
- Date minEndDateToUpdate = calendar.getTime();
+ int sessionTimeout = getPollenServiceConfig().getSessionTimeoutDelay();
- if (minEndDateToUpdate.after(endDate)) {
+ Calendar calendar = Calendar.getInstance();
+ // From now
+ calendar.setTimeInMillis(now.getTime());
+ // add session timeout delay
+ calendar.add(Calendar.SECOND, sessionTimeout);
+ // retrieve 5 minutes
+ calendar.add(Calendar.MINUTE, -5);
- // update end date (now + sessionTimeout)
- calendar.setTime(now);
- calendar.add(Calendar.SECOND, sessionTimeout);
- Date newEndDate = calendar.getTime();
+ Date minEndDateToUpdate = calendar.getTime();
- if (log.isDebugEnabled()) {
- log.debug(String.format("SessionToken %s update endDate : %s", sessionToken.getPollenToken().getToken(), newEndDate));
- }
- sessionToken.getPollenToken().setEndDate(newEndDate);
+ if (minEndDateToUpdate.after(endDate)) {
- commit();
+ // update end date (now + sessionTimeout)
+ calendar.setTime(now);
+ calendar.add(Calendar.SECOND, sessionTimeout);
+ Date newEndDate = calendar.getTime();
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("SessionToken %s update endDate : %s", sessionToken.getPollenToken().getToken(), newEndDate));
}
+ sessionToken.getPollenToken().setEndDate(newEndDate);
+
+ commit();
}
--
To stop receiving notification emails like this one, please contact
Chorem.org SCM administrator <admin+scm(a)chorem.org>.
1
0
This is an automated email from the git hooks/post-receive script.
unknown user pushed a commit to branch devel
in repository Pollen.
commit ef08f5e609381ee8130bb02461c0496a86936596
Author: Adrien Garandel <a.garandel(a)dralagen.fr>
Date: Thu May 22 12:50:04 2014 +0200
catch session expired
---
pollen-rest-api/src/main/resources/mapping | 2 +-
pollen-ui-angular/src/main/webapp/js/app.js | 31 +++++++++++++---------
.../src/main/webapp/js/controllers/userCtrl.js | 24 ++++++++++-------
3 files changed, 34 insertions(+), 23 deletions(-)
diff --git a/pollen-rest-api/src/main/resources/mapping b/pollen-rest-api/src/main/resources/mapping
index 6f70b40..dcfdb6f 100644
--- a/pollen-rest-api/src/main/resources/mapping
+++ b/pollen-rest-api/src/main/resources/mapping
@@ -13,7 +13,7 @@ default.render=org.chorem.pollen.rest.api.PollenRender
org.chorem.pollen.services.service.security.PollenAuthenticationException ErrorAction.on401
org.chorem.pollen.services.service.security.PollenUnauthorizedException ErrorAction.on403
org.chorem.pollen.services.service.security.PollenInvalidPermissionException ErrorAction.on403
-org.chorem.pollen.services.service.security.PollenInvalidSessionTokenException ErrorAction.on403
+org.chorem.pollen.services.service.security.PollenInvalidSessionTokenException ErrorAction.on401
org.chorem.pollen.services.service.security.PollenInvalidEmailActivationTokenException ErrorAction.on403
org.chorem.pollen.services.service.InvalidFormException ErrorAction.on400Form
org.nuiton.topia.persistence.TopiaNoResultException ErrorAction.on404
diff --git a/pollen-ui-angular/src/main/webapp/js/app.js b/pollen-ui-angular/src/main/webapp/js/app.js
index f6eaca4..6737d15 100644
--- a/pollen-ui-angular/src/main/webapp/js/app.js
+++ b/pollen-ui-angular/src/main/webapp/js/app.js
@@ -21,28 +21,35 @@
angular.module('pollen', ['pollenServices', 'ngRoute', 'pollControllers', 'userControllers', 'ui.bootstrap', 'ngCookies'])
.config(['$httpProvider', function($httpProvider) {
// edit header for locale and sessionToken
- $httpProvider.interceptors.push('httpRequestInterceptor');
+ $httpProvider.interceptors.push('httpInterceptor');
// edit content-type for send data to the server
$httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
}])
-.factory('httpRequestInterceptor', ['SessionStorage', function (SessionStorage) {
- // set locale with browser preference
- // default : en
- var session = SessionStorage.get();
-
- if (angular.isUndefined(session.locale)) {
- var locale = navigator.language || navigator.userLanguage || 'en';
- SessionStorage.save({locale:locale.substring(0,2)});
- }
-
-
+.factory('httpInterceptor', ['$q', '$rootScope', 'SessionStorage', function ($q, $rootScope, SessionStorage) {
return {
request: function($config) {
+ // set locale with browser preference
+ // default : en
+ var session = SessionStorage.get();
+
+ // set locale if undefined
+ if (angular.isUndefined(session.locale)) {
+ var locale = navigator.language || navigator.userLanguage || 'en';
+ SessionStorage.save({locale:locale.substring(0,2)});
+ }
+
$config.headers['Accept-Language'] = session.locale;
$config.headers['X-Pollen-Session-Token'] = session.token;
return $config;
+ },
+ responseError: function(response) {
+ if (response.status === 401) {
+ //error login or sessionToken
+ $rootScope.$broadcast('sessionExpired');
+ }
+ return $q.reject(response);
}
};
}])
diff --git a/pollen-ui-angular/src/main/webapp/js/controllers/userCtrl.js b/pollen-ui-angular/src/main/webapp/js/controllers/userCtrl.js
index bf2517f..8f4a71f 100644
--- a/pollen-ui-angular/src/main/webapp/js/controllers/userCtrl.js
+++ b/pollen-ui-angular/src/main/webapp/js/controllers/userCtrl.js
@@ -36,16 +36,20 @@
}
}])
-.controller('UserLoginCtrl', ['$scope', 'UserLogin', 'UserLogout', 'User', 'SessionStorage', '$route', function ($scope, UserLogin, UserLogout, User, SessionStorage, $route) {
+.controller('UserLoginCtrl', ['$scope', 'UserLogin', 'UserLogout', 'User', 'SessionStorage', '$route', '$location', function ($scope, UserLogin, UserLogout, User, SessionStorage, $route, $location) {
if (angular.isUndefined($scope.data)) {
$scope.data = {user:{}};
}
+
+ $scope.$on('sessionExpired', function() {
+ $scope.logout();
+ })
+
$scope.currentUser = SessionStorage.get().user;
$scope.login = function () {
UserLogin.login({}, $scope.data.user, function (data) {
SessionStorage.save({'token':data.permission});
-
User.get({userId: data.id}, function (user) {
$scope.currentUser = user;
SessionStorage.save({'user':user});
@@ -60,14 +64,14 @@
}
$scope.logout = function () {
- UserLogout.logout(function (data) {
- // delete user information
- SessionStorage.remove('token');
- SessionStorage.remove('user');
- delete $scope.currentUser;
+ UserLogout.logout();
+
+ // delete user information
+ SessionStorage.remove('token');
+ SessionStorage.remove('user');
+ delete $scope.currentUser;
- //reload page for right user
- $route.reload();
- })
+ //got to the home
+ $route.reload();
}
}])
\ No newline at end of file
--
To stop receiving notification emails like this one, please contact
Chorem.org SCM administrator <admin+scm(a)chorem.org>.
1
0
22 May '14
This is an automated email from the git hooks/post-receive script.
unknown user pushed a commit to branch devel
in repository Pollen.
commit 16099446a390baf6c65b42e8ef263c90d01d9827
Author: Tony CHEMIT <chemit(a)codelutin.com>
Date: Thu May 22 10:44:11 2014 +0200
make security works in tests + downgrade tomcat version
---
.../chorem/pollen/rest/api/PollenUserApiTest.java | 26 ++++++++
.../chorem/pollen/services/bean/CreateBeanRef.java | 71 ++++++++++++++--------
.../pollen/services/service/ChoiceService.java | 4 +-
.../pollen/services/service/CommentService.java | 5 +-
.../services/service/FavoriteListService.java | 9 +--
.../pollen/services/service/PollService.java | 3 +-
.../pollen/services/service/PollenUserService.java | 21 ++++---
.../pollen/services/service/VoteService.java | 4 +-
.../pollen/services/service/VoterListService.java | 31 ++++++----
.../services/service/security/SecurityService.java | 3 +-
.../test/FakePollenApplicationContext.java | 6 +-
.../services/test/FakePollenSecurityContext.java | 16 ++---
.../services/test/FakePollenServiceContext.java | 6 +-
.../pollen/services/AbstractPollenServiceTest.java | 29 +++++++++
.../services/service/PollenUserServiceTest.java | 15 ++++-
pom.xml | 2 +-
16 files changed, 171 insertions(+), 80 deletions(-)
diff --git a/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/PollenUserApiTest.java b/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/PollenUserApiTest.java
index f215bfb..234e267 100644
--- a/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/PollenUserApiTest.java
+++ b/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/PollenUserApiTest.java
@@ -25,10 +25,15 @@ package org.chorem.pollen.rest.api;
import org.apache.http.client.fluent.Request;
import org.chorem.pollen.persistence.entity.PollenUser;
+import org.chorem.pollen.rest.api.converter.JsonConverter;
+import org.chorem.pollen.services.bean.CreateBeanRef;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
+import java.io.IOException;
+import java.net.URISyntaxException;
+
import static org.junit.Assert.assertTrue;
/**
@@ -45,10 +50,28 @@ public class PollenUserApiTest extends AbstractPollenRestApiTest {
loadFixtures("fixtures");
}
+ protected String login(String login, String password) throws URISyntaxException, IOException {
+
+ Request loginRequest = createRequest("/v1/login")
+ .addParameter("login", login)
+ .addParameter("password", password)
+ .Post();
+
+ String loginContent = loginRequest.execute().returnContent().asString();
+ JsonConverter<CreateBeanRef> jsonConverter = JsonConverter.newConverter(CreateBeanRef.class);
+
+ CreateBeanRef createBeanRef = jsonConverter.convert(CreateBeanRef.class, loginContent);
+ return createBeanRef.getPermission();
+
+ }
+
@Test
public void getUsers() throws Exception {
+ String sessionToken = login("admin", "admin");
+
Request request = createRequest("/v1/users").Get();
+ request.addHeader(PollenRestApiRequestFilter.REQUEST_HEADER_SESSION_TOKEN, sessionToken);
String content = request.execute().returnContent().asString();
showTestResult(content);
assertTrue(content.contains("email"));
@@ -58,9 +81,12 @@ public class PollenUserApiTest extends AbstractPollenRestApiTest {
@Test
public void getUser() throws Exception {
+ String sessionToken = login("admin", "admin");
+
PollenUser pollenUser = fixture("user_jean");
String userId = pollenUser.getTopiaId();
Request request = createRequest("/v1/users/" + userId).Get();
+ request.addHeader(PollenRestApiRequestFilter.REQUEST_HEADER_SESSION_TOKEN, sessionToken);
String content = request.execute().returnContent().asString();
showTestResult(content);
assertTrue(content.contains("email"));
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/bean/CreateBeanRef.java b/pollen-services/src/main/java/org/chorem/pollen/services/bean/CreateBeanRef.java
index eebd8f7..f34ec39 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/bean/CreateBeanRef.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/bean/CreateBeanRef.java
@@ -26,56 +26,79 @@ public class CreateBeanRef implements Serializable {
protected String permission;
- public void fromEntity(Poll entity) {
+ public static CreateBeanRef of(Poll entity) {
- setId(entity.getTopiaId());
- setPermission(entity.getCreator().getPermission().getToken());
+ CreateBeanRef ref = new CreateBeanRef(entity.getTopiaId(),
+ entity.getCreator().getPermission().getToken());
+ return ref;
}
- public void fromEntity(Choice entity) {
+ public static CreateBeanRef of(Choice entity) {
- setId(entity.getTopiaId());
- setPermission(entity.getCreator().getPermission().getToken());
+ CreateBeanRef ref = new CreateBeanRef(entity.getTopiaId(),
+ entity.getCreator().getPermission().getToken());
+ return ref;
}
- public void fromEntity(Comment entity) {
+ public static CreateBeanRef of(Comment entity) {
- setId(entity.getTopiaId());
- setPermission(entity.getAuthor().getPermission().getToken());
+ CreateBeanRef ref = new CreateBeanRef(entity.getTopiaId(),
+ entity.getAuthor().getPermission().getToken());
+ return ref;
}
- public void fromEntity(Vote entity) {
+ public static CreateBeanRef of(Vote entity) {
- setId(entity.getTopiaId());
- setPermission(entity.getVoter().getPermission().getToken());
+ CreateBeanRef ref = new CreateBeanRef(entity.getTopiaId(),
+ entity.getVoter().getPermission().getToken());
+ return ref;
}
- public void fromEntity(VoterList entity) {
+ public static CreateBeanRef of(VoterList entity) {
- setId(entity.getTopiaId());
-// setPermission(entity.getVoter().getPermission().getToken());
+ CreateBeanRef ref = new CreateBeanRef(entity.getTopiaId(), null);
+ return ref;
}
- public void fromEntity(PollenUser result) {
- setId(result.getTopiaId());
+ public static CreateBeanRef of(PollenUser result) {
+
+ CreateBeanRef ref = new CreateBeanRef(result.getTopiaId(), null);
+ return ref;
+
+ }
+
+ public static CreateBeanRef of(FavoriteList result) {
+
+ CreateBeanRef ref = new CreateBeanRef(result.getTopiaId(), null);
+ return ref;
+
}
- public void fromEntity(FavoriteList result) {
- setId(result.getTopiaId());
+ public static CreateBeanRef of(FavoriteListMember result) {
+
+ CreateBeanRef ref = new CreateBeanRef(result.getTopiaId(), null);
+ return ref;
+
}
- public void fromEntity(FavoriteListMember result) {
- setId(result.getTopiaId());
+ public static CreateBeanRef of(SessionToken result) {
+
+ CreateBeanRef ref = new CreateBeanRef(result.getPollenUser().getTopiaId(),
+ result.getPollenToken().getToken());
+ return ref;
+
}
- public void fromEntity(SessionToken result) {
- setId(result.getPollenUser().getTopiaId());
- setPermission(result.getPollenToken().getToken());
+ protected CreateBeanRef(String id, String permission) {
+
+ setId(id);
+ setPermission(permission);
+
}
public String getId() {
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/ChoiceService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/ChoiceService.java
index 1fa5876..2be031d 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/service/ChoiceService.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/ChoiceService.java
@@ -132,9 +132,7 @@ public class ChoiceService extends PollenServiceSupport {
getNotificationService().onChoiceAdded(poll, result);
- CreateBeanRef createBeanRef = new CreateBeanRef();
- createBeanRef.fromEntity(result);
-
+ CreateBeanRef createBeanRef = CreateBeanRef.of(result);
return createBeanRef;
}
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/CommentService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/CommentService.java
index 3f5c930..5add5c0 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/service/CommentService.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/CommentService.java
@@ -23,7 +23,6 @@ package org.chorem.pollen.services.service;
* #L%
*/
-import com.google.common.collect.ImmutableList;
import org.chorem.pollen.persistence.entity.Comment;
import org.chorem.pollen.persistence.entity.Poll;
import org.chorem.pollen.persistence.entity.PollenPrincipal;
@@ -94,9 +93,7 @@ public class CommentService extends PollenServiceSupport {
getNotificationService().onCommentAdded(poll, result);
- CreateBeanRef createBeanRef = new CreateBeanRef();
- createBeanRef.fromEntity(result);
-
+ CreateBeanRef createBeanRef = CreateBeanRef.of(result);
return createBeanRef;
}
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/FavoriteListService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/FavoriteListService.java
index 66bd690..00a28fa 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/service/FavoriteListService.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/FavoriteListService.java
@@ -23,8 +23,6 @@ package org.chorem.pollen.services.service;
* #L%
*/
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Sets;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.io.IOUtils;
@@ -49,7 +47,6 @@ import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;
import java.io.BufferedReader;
import java.io.File;
-import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
@@ -110,8 +107,7 @@ public class FavoriteListService extends PollenServiceSupport {
getNotificationService().onFavoriteListAdded(user, result);
- CreateBeanRef createBeanRef = new CreateBeanRef();
- createBeanRef.fromEntity(result);
+ CreateBeanRef createBeanRef = CreateBeanRef.of(result);
return createBeanRef;
}
@@ -206,8 +202,7 @@ public class FavoriteListService extends PollenServiceSupport {
FavoriteListMember result = saveFavoriteListMember(favoriteList, member);
commit();
- CreateBeanRef createBeanRef = new CreateBeanRef();
- createBeanRef.fromEntity(result);
+ CreateBeanRef createBeanRef = CreateBeanRef.of(result);
return createBeanRef;
}
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollService.java
index f0ea7a1..b0f74dd 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollService.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollService.java
@@ -161,8 +161,7 @@ public class PollService extends PollenServiceSupport {
getNotificationService().onPollCreated(savedPoll);
- CreateBeanRef createBeanRef = new CreateBeanRef();
- createBeanRef.fromEntity(savedPoll);
+ CreateBeanRef createBeanRef = CreateBeanRef.of(savedPoll);
return createBeanRef;
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenUserService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenUserService.java
index ae50d70..fcb1f55 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenUserService.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenUserService.java
@@ -46,20 +46,24 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer
public List<PollenUserBean> getUsers() {
-// checkIsConnected();
-// checkIsAdmin();
+ checkIsConnected();
+ checkIsAdmin();
List<PollenUser> pollenUsers = getPollenUserDao().findAll();
- return copyAsList(PollenUserBean.class, pollenUsers);
+ List<PollenUserBean> pollenUserBeans = copyAsList(PollenUserBean.class, pollenUsers);
+ return pollenUserBeans;
}
public PollenUserBean getUser(String userId) {
+ checkIsConnected();
checkNotNull(userId);
- PollenUser result = getUser0(userId);
- return copy(PollenUserBean.class, result);
+ PollenUser pollenUser = getUser0(userId);
+ PollenUserBean pollenUserBean = copy(PollenUserBean.class, pollenUser);
+
+ return pollenUserBean;
}
@@ -80,8 +84,7 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer
getNotificationService().onUserCreated(result, generatePassword);
- CreateBeanRef createBeanRef = new CreateBeanRef();
- createBeanRef.fromEntity(result);
+ CreateBeanRef createBeanRef = CreateBeanRef.of(result);
return createBeanRef;
}
@@ -98,7 +101,9 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer
commit();
getNotificationService().onUserEdited(result);
- return copy(PollenUserBean.class, result);
+
+ PollenUserBean pollenUserBean = copy(PollenUserBean.class, result);
+ return pollenUserBean;
}
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteService.java
index e9de3e1..d75da00 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteService.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteService.java
@@ -101,9 +101,7 @@ public class VoteService extends PollenServiceSupport {
getNotificationService().onVoteAdded(poll, result);
- CreateBeanRef createBeanRef = new CreateBeanRef();
- createBeanRef.fromEntity(result);
-
+ CreateBeanRef createBeanRef = CreateBeanRef.of(result);
return createBeanRef;
}
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/VoterListService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/VoterListService.java
index 17a8623..d34d307 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/service/VoterListService.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/VoterListService.java
@@ -89,7 +89,8 @@ public class VoterListService extends PollenServiceSupport {
Poll poll = getPollService().getPoll0(pollId);
List<VoterList> voterLists = getVoterListDao().forPollEquals(poll).findAll();
- return copyAsList(VoterListBean.class, voterLists);
+ List<VoterListBean> voterListBeans = copyAsList(VoterListBean.class, voterLists);
+ return voterListBeans;
}
@@ -98,8 +99,9 @@ public class VoterListService extends PollenServiceSupport {
checkNotNull(pollId);
checkNotNull(voterListId);
- VoterList result = getVoterList0(pollId, voterListId);
- return copy(VoterListBean.class, result);
+ VoterList voterList = getVoterList0(pollId, voterListId);
+ VoterListBean voterListBean = copy(VoterListBean.class, voterList);
+ return voterListBean;
}
@@ -122,8 +124,7 @@ public class VoterListService extends PollenServiceSupport {
//TODO Notify
- CreateBeanRef createBeanRef = new CreateBeanRef();
- createBeanRef.fromEntity(result);
+ CreateBeanRef createBeanRef = CreateBeanRef.of(result);
return createBeanRef;
}
@@ -145,7 +146,8 @@ public class VoterListService extends PollenServiceSupport {
commit();
//TODO Notify
- return copy(VoterListBean.class, result);
+ VoterListBean voterListBean = copy(VoterListBean.class, result);
+ return voterListBean;
}
@@ -169,8 +171,9 @@ public class VoterListService extends PollenServiceSupport {
VoterList voterList = getVoterList0(pollId, voterListId);
- Set<VoterListMember> result = voterList.getMember();
- return copyAsSet(VoterListMemberBean.class, result);
+ Set<VoterListMember> members = voterList.getMember();
+ Set<VoterListMemberBean> memberBeans = copyAsSet(VoterListMemberBean.class, members);
+ return memberBeans;
}
@@ -182,9 +185,9 @@ public class VoterListService extends PollenServiceSupport {
VoterList voterList = getVoterList0(pollId, voterListId);
- VoterListMember result = getVoterListMember(voterList, memberId);
-
- return copy(VoterListMemberBean.class, result);
+ VoterListMember member = getVoterListMember(voterList, memberId);
+ VoterListMemberBean memberBean = copy(VoterListMemberBean.class, member);
+ return memberBean;
}
@@ -205,7 +208,8 @@ public class VoterListService extends PollenServiceSupport {
VoterListMember result = saveVoterListMember(voterList, member);
commit();
- return copy(VoterListMemberBean.class, result);
+ VoterListMemberBean memberBean = copy(VoterListMemberBean.class, result);
+ return memberBean;
}
@@ -227,7 +231,8 @@ public class VoterListService extends PollenServiceSupport {
VoterListMember result = saveVoterListMember(voterList, member);
commit();
- return copy(VoterListMemberBean.class, result);
+ VoterListMemberBean memberBean = copy(VoterListMemberBean.class, result);
+ return memberBean;
}
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/security/SecurityService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/security/SecurityService.java
index 215eeab..d5c62cb 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/service/security/SecurityService.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/security/SecurityService.java
@@ -100,8 +100,7 @@ public class SecurityService extends PollenServiceSupport {
SessionToken.PROPERTY_POLLEN_USER, user);
commit();
- CreateBeanRef createBeanRef = new CreateBeanRef();
- createBeanRef.fromEntity(sessionToken);
+ CreateBeanRef createBeanRef = CreateBeanRef.of(sessionToken);
return createBeanRef;
}
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/test/FakePollenApplicationContext.java b/pollen-services/src/main/java/org/chorem/pollen/services/test/FakePollenApplicationContext.java
index 79ca1e5..17f9fd4 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/test/FakePollenApplicationContext.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/test/FakePollenApplicationContext.java
@@ -150,7 +150,11 @@ public class FakePollenApplicationContext extends TestWatcher implements PollenA
log.trace("closing transaction " + openedTransaction);
}
- openedTransaction.closeContext();
+ if (!openedTransaction.isClosed()) {
+
+ openedTransaction.closeContext();
+
+ }
}
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/test/FakePollenSecurityContext.java b/pollen-services/src/main/java/org/chorem/pollen/services/test/FakePollenSecurityContext.java
index 216117b..fa25e59 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/test/FakePollenSecurityContext.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/test/FakePollenSecurityContext.java
@@ -33,14 +33,14 @@ public class FakePollenSecurityContext extends DefaultPollenSecurityContext {
private static final long serialVersionUID = 1L;
- @Override
- public boolean isConnected() {
- return true;
- }
+// @Override
+// public boolean isConnected() {
+// return true;
+// }
- @Override
- public boolean isAdmin() {
- return false;
- }
+// @Override
+// public boolean isAdmin() {
+// return false;
+// }
}
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/test/FakePollenServiceContext.java b/pollen-services/src/main/java/org/chorem/pollen/services/test/FakePollenServiceContext.java
index 2768674..f0609d2 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/test/FakePollenServiceContext.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/test/FakePollenServiceContext.java
@@ -30,6 +30,7 @@ import org.chorem.pollen.persistence.PollenTopiaApplicationContext;
import org.chorem.pollen.persistence.PollenTopiaPersistenceContext;
import org.chorem.pollen.services.DefaultPollenServiceContext;
import org.chorem.pollen.services.config.PollenServiceConfig;
+import org.chorem.pollen.services.service.security.PollenSecurityContext;
import java.util.Date;
import java.util.Locale;
@@ -70,5 +71,8 @@ public class FakePollenServiceContext extends DefaultPollenServiceContext {
this.date = date;
}
-
+ @Override
+ public FakePollenSecurityContext getSecurityContext() {
+ return (FakePollenSecurityContext) super.getSecurityContext();
+ }
}
diff --git a/pollen-services/src/test/java/org/chorem/pollen/services/AbstractPollenServiceTest.java b/pollen-services/src/test/java/org/chorem/pollen/services/AbstractPollenServiceTest.java
index 0027668..11ff686 100644
--- a/pollen-services/src/test/java/org/chorem/pollen/services/AbstractPollenServiceTest.java
+++ b/pollen-services/src/test/java/org/chorem/pollen/services/AbstractPollenServiceTest.java
@@ -24,9 +24,15 @@ package org.chorem.pollen.services;
*/
import com.google.common.collect.Multimap;
+import org.chorem.pollen.persistence.entity.SessionToken;
+import org.chorem.pollen.services.bean.CreateBeanRef;
import org.chorem.pollen.services.service.InvalidFormException;
+import org.chorem.pollen.services.service.security.PollenAuthenticationException;
+import org.chorem.pollen.services.service.security.PollenInvalidSessionTokenException;
+import org.chorem.pollen.services.service.security.SecurityService;
import org.chorem.pollen.services.test.FakePollenApplicationContext;
import org.chorem.pollen.services.test.FakePollenServiceContext;
+import org.junit.After;
import org.junit.Assert;
import org.junit.Rule;
@@ -51,6 +57,11 @@ public abstract class AbstractPollenServiceTest {
return application.fixture(id);
}
+ @After
+ public void tearDown() {
+ logout();
+ }
+
protected FakePollenServiceContext getServiceContext() {
if (serviceContext == null) {
@@ -75,4 +86,22 @@ public abstract class AbstractPollenServiceTest {
}
}
+ protected void login(String login, String password) throws PollenInvalidSessionTokenException, PollenAuthenticationException {
+
+ SecurityService securityService = newService(SecurityService.class);
+
+ CreateBeanRef loginRef = securityService.login(login, password, null);
+
+ SessionToken sessionToken = securityService.getSessionTokenByToken(loginRef.getPermission());
+ serviceContext.getSecurityContext().setSessionToken(sessionToken);
+
+ }
+
+ protected void logout() {
+
+ SecurityService securityService = newService(SecurityService.class);
+ securityService.logout();
+
+ }
+
}
diff --git a/pollen-services/src/test/java/org/chorem/pollen/services/service/PollenUserServiceTest.java b/pollen-services/src/test/java/org/chorem/pollen/services/service/PollenUserServiceTest.java
index 3fafaaf..3449281 100644
--- a/pollen-services/src/test/java/org/chorem/pollen/services/service/PollenUserServiceTest.java
+++ b/pollen-services/src/test/java/org/chorem/pollen/services/service/PollenUserServiceTest.java
@@ -28,6 +28,8 @@ import org.chorem.pollen.persistence.entity.PollenUser;
import org.chorem.pollen.services.AbstractPollenServiceTest;
import org.chorem.pollen.services.bean.CreateBeanRef;
import org.chorem.pollen.services.bean.PollenUserBean;
+import org.chorem.pollen.services.service.security.PollenAuthenticationException;
+import org.chorem.pollen.services.service.security.PollenInvalidSessionTokenException;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
@@ -62,16 +64,21 @@ public class PollenUserServiceTest extends AbstractPollenServiceTest {
}
@Test
- public void testGetPollenUsers() {
+ public void testGetPollenUsers() throws PollenAuthenticationException, PollenInvalidSessionTokenException {
+
+ login("jean", "fake");
List<PollenUserBean> users = service.getUsers();
Assert.assertNotNull(users);
Assert.assertTrue(CollectionUtils.isNotEmpty(users));
+
}
@Test
- public void testGetPollenUser() {
+ public void testGetPollenUser() throws PollenInvalidSessionTokenException, PollenAuthenticationException {
+
+ login("jean", "fake");
try {
service.getUser("pollen_user_tony_" + System.nanoTime());
@@ -136,7 +143,9 @@ public class PollenUserServiceTest extends AbstractPollenServiceTest {
}
@Test
- public void testEditUser() throws InvalidFormException {
+ public void testEditUser() throws InvalidFormException, PollenInvalidSessionTokenException, PollenAuthenticationException {
+
+ login("jean", "fake");
PollenUserBean user = service.getUser(this.user.getTopiaId());
diff --git a/pom.xml b/pom.xml
index 1ab4552..25dc5d0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -177,7 +177,7 @@
<slf4jVersion>1.7.7</slf4jVersion>
<jettyVersion>9.0.3.v20130506</jettyVersion>
<tomcatEmbedVersion>7.0.50</tomcatEmbedVersion>
- <tomcatEmbedVersion>8.0.5</tomcatEmbedVersion>
+ <!--tomcatEmbedVersion>8.0.5</tomcatEmbedVersion-->
<hibernateVersion>4.3.5.Final</hibernateVersion>
<seleniumVersion>2.33.0</seleniumVersion>
<mockitoVersion>1.9.5</mockitoVersion>
--
To stop receiving notification emails like this one, please contact
Chorem.org SCM administrator <admin+scm(a)chorem.org>.
1
0
This is an automated email from the git hooks/post-receive script.
unknown user pushed a commit to branch devel
in repository Pollen.
commit 3d237d9039ebc4fdb41ed9f288d05bf3c8594f60
Author: Tony CHEMIT <chemit(a)codelutin.com>
Date: Thu May 22 08:47:14 2014 +0200
remove permissions + clean service code
---
.../pollen/persistence/entity/ChoiceTopiaDao.java | 4 +--
.../pollen/persistence/entity/CommentTopiaDao.java | 15 ++++++++++
.../pollen/persistence/entity/VoteTopiaDao.java | 16 ++++++++++
.../org/chorem/pollen/services/bean/VoteBean.java | 1 -
.../pollen/services/service/ChoiceService.java | 25 +++++++++++++---
.../pollen/services/service/CommentService.java | 26 +++++++++++++----
.../services/service/FavoriteListService.java | 32 +++++++++++---------
.../pollen/services/service/PollService.java | 34 ++++++++++++----------
.../services/service/VoteCountingService.java | 1 -
.../pollen/services/service/VoteService.java | 25 ++++++++++++----
10 files changed, 132 insertions(+), 47 deletions(-)
diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/ChoiceTopiaDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/ChoiceTopiaDao.java
index 0d19abf..18206e2 100644
--- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/ChoiceTopiaDao.java
+++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/ChoiceTopiaDao.java
@@ -21,8 +21,6 @@ package org.chorem.pollen.persistence.entity;
* #L%
*/
-import com.google.common.collect.ImmutableList;
-
import java.util.List;
public class ChoiceTopiaDao extends AbstractChoiceTopiaDao<Choice> {
@@ -32,7 +30,7 @@ public class ChoiceTopiaDao extends AbstractChoiceTopiaDao<Choice> {
List<Choice> choices = forPollEquals(poll).
setOrderByArguments(Choice.PROPERTY_CHOICE_ORDER).
findAll();
- return ImmutableList.copyOf(choices);
+ return choices;
}
}
diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/CommentTopiaDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/CommentTopiaDao.java
new file mode 100644
index 0000000..f4835cc
--- /dev/null
+++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/CommentTopiaDao.java
@@ -0,0 +1,15 @@
+package org.chorem.pollen.persistence.entity;
+
+import java.util.List;
+
+public class CommentTopiaDao extends AbstractCommentTopiaDao<Comment> {
+
+ public List<Comment> findAll(Poll poll) {
+
+ List<Comment> comments = forPollEquals(poll)
+ .setOrderByArguments(Comment.PROPERTY_TOPIA_CREATE_DATE)
+ .findAll();
+ return comments;
+
+ }
+}
diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/VoteTopiaDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/VoteTopiaDao.java
new file mode 100644
index 0000000..e6091e4
--- /dev/null
+++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/VoteTopiaDao.java
@@ -0,0 +1,16 @@
+package org.chorem.pollen.persistence.entity;
+
+import java.util.List;
+
+public class VoteTopiaDao extends AbstractVoteTopiaDao<Vote> {
+
+ public List<Vote> findAll(Poll poll) {
+
+ List<Vote> votes = forPollEquals(poll)
+ .setOrderByArguments(Vote.PROPERTY_TOPIA_CREATE_DATE)
+ .findAll();
+ return votes;
+
+ }
+
+}
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/bean/VoteBean.java b/pollen-services/src/main/java/org/chorem/pollen/services/bean/VoteBean.java
index e5d99f2..ff99433 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/bean/VoteBean.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/bean/VoteBean.java
@@ -8,7 +8,6 @@ import org.chorem.pollen.persistence.entity.VoteToChoice;
import org.chorem.pollen.persistence.entity.VoteToChoices;
import java.util.ArrayList;
-import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/ChoiceService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/ChoiceService.java
index 719234f..1fa5876 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/service/ChoiceService.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/ChoiceService.java
@@ -52,7 +52,17 @@ public class ChoiceService extends PollenServiceSupport {
Poll poll = getPollService().getPoll0(pollId);
List<Choice> choices = getChoiceDao().findAll(poll);
- return copyAsList(ChoiceBean.class, choices);
+ List<ChoiceBean> choiceBeans = copyAsList(ChoiceBean.class, choices);
+
+ for (ChoiceBean choiceBean : choiceBeans) {
+
+ if (isNotPermitted(PermissionVerb.editChoice, choiceBean.getId())) {
+ choiceBean.setPermission(null);
+ }
+
+ }
+
+ return choiceBeans;
}
@@ -64,8 +74,14 @@ public class ChoiceService extends PollenServiceSupport {
Poll poll = getPollService().getPoll0(pollId);
- Choice result = getChoice(poll, choiceId);
- return copy(ChoiceBean.class, result);
+ Choice choice = getChoice(poll, choiceId);
+ ChoiceBean choiceBean = copy(ChoiceBean.class, choice);
+
+ if (isNotPermitted(PermissionVerb.editChoice, choiceBean.getId())) {
+ choiceBean.setPermission(null);
+ }
+
+ return choiceBean;
}
@@ -90,7 +106,8 @@ public class ChoiceService extends PollenServiceSupport {
creator.setEmail(connectedUser.getEmail());
}
- return copy(ChoiceBean.class, result);
+ ChoiceBean choiceBean = copy(ChoiceBean.class, result);
+ return choiceBean;
}
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/CommentService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/CommentService.java
index f20112b..3f5c930 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/service/CommentService.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/CommentService.java
@@ -23,6 +23,7 @@ package org.chorem.pollen.services.service;
* #L%
*/
+import com.google.common.collect.ImmutableList;
import org.chorem.pollen.persistence.entity.Comment;
import org.chorem.pollen.persistence.entity.Poll;
import org.chorem.pollen.persistence.entity.PollenPrincipal;
@@ -45,8 +46,16 @@ public class CommentService extends PollenServiceSupport {
checkNotNull(pollId);
Poll poll = getPollService().getPoll0(pollId);
- List<Comment> comments = getCommentDao().forPollEquals(poll).findAll();
- return copyAsList(CommentBean.class, comments);
+ List<Comment> comments = getCommentDao().findAll(poll);
+ List<CommentBean> commentBeans = copyAsList(CommentBean.class, comments);
+
+ for (CommentBean commentBean : commentBeans) {
+ if (isNotPermitted(PermissionVerb.readComment, commentBean.getId())) {
+ commentBean.setPermission(null);
+ }
+ }
+
+ return commentBeans;
}
@@ -58,8 +67,14 @@ public class CommentService extends PollenServiceSupport {
Poll poll = getPollService().getPoll0(pollId);
- Comment result = getComment(poll, commentId);
- return copy(CommentBean.class, result);
+ Comment comment = getComment(poll, commentId);
+ CommentBean commentBean = copy(CommentBean.class, comment);
+
+ if (isNotPermitted(PermissionVerb.readComment, commentBean.getId())) {
+ commentBean.setPermission(null);
+ }
+
+ return commentBean;
}
@@ -102,7 +117,8 @@ public class CommentService extends PollenServiceSupport {
getNotificationService().onCommentEdited(poll, result);
- return copy(CommentBean.class, result);
+ CommentBean commentBean = copy(CommentBean.class, result);
+ return commentBean;
}
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/FavoriteListService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/FavoriteListService.java
index bb8fd68..66bd690 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/service/FavoriteListService.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/FavoriteListService.java
@@ -23,6 +23,8 @@ package org.chorem.pollen.services.service;
* #L%
*/
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Sets;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.io.IOUtils;
@@ -71,8 +73,9 @@ public class FavoriteListService extends PollenServiceSupport {
checkIsConnected();
PollenUser user = getConnectedUser();
- List<FavoriteList> result = user.getFavoriteList();
- return copyAsList(FavoriteListBean.class, result);
+ List<FavoriteList> favoriteLists = user.getFavoriteList();
+ List<FavoriteListBean> favoriteListBeans = copyAsList(FavoriteListBean.class, favoriteLists);
+ return favoriteListBeans;
}
@@ -83,8 +86,9 @@ public class FavoriteListService extends PollenServiceSupport {
PollenUser user = getConnectedUser();
- FavoriteList result = getFavoriteList(user, favoriteListId);
- return copy(FavoriteListBean.class, result);
+ FavoriteList favoriteList = getFavoriteList(user, favoriteListId);
+ FavoriteListBean favoriteListBean = copy(FavoriteListBean.class, favoriteList);
+ return favoriteListBean;
}
@@ -130,7 +134,8 @@ public class FavoriteListService extends PollenServiceSupport {
getNotificationService().onFavoriteListEdited(user, result);
- return copy(FavoriteListBean.class, result);
+ FavoriteListBean favoriteListBean = copy(FavoriteListBean.class, result);
+ return favoriteListBean;
}
@@ -159,8 +164,9 @@ public class FavoriteListService extends PollenServiceSupport {
FavoriteList favoriteList = getFavoriteList(user, favoriteListId);
- Set<FavoriteListMember> member = favoriteList.getMember();
- return copyAsSet(FavoriteListMemberBean.class, member);
+ Set<FavoriteListMember> members = favoriteList.getMember();
+ Set<FavoriteListMemberBean> memberBeans = copyAsSet(FavoriteListMemberBean.class, members);
+ return memberBeans;
}
@@ -174,8 +180,9 @@ public class FavoriteListService extends PollenServiceSupport {
FavoriteList favoriteList = getFavoriteList(user, favoriteListId);
- FavoriteListMember result = getFavoriteListMember(favoriteList, memberId);
- return copy(FavoriteListMemberBean.class, result);
+ FavoriteListMember member = getFavoriteListMember(favoriteList, memberId);
+ FavoriteListMemberBean memberBean = copy(FavoriteListMemberBean.class, member);
+ return memberBean;
}
@@ -225,7 +232,8 @@ public class FavoriteListService extends PollenServiceSupport {
FavoriteListMember result = saveFavoriteListMember(favoriteList, member);
commit();
- return copy(FavoriteListMemberBean.class, result);
+ FavoriteListMemberBean memberBean = copy(FavoriteListMemberBean.class, result);
+ return memberBean;
}
@@ -331,9 +339,6 @@ public class FavoriteListService extends PollenServiceSupport {
reader.close();
- } catch (FileNotFoundException e) {
- // should never happens ?
- throw new PollenTechnicalException(e);
} catch (IOException e) {
// should never happens ?
throw new PollenTechnicalException(e);
@@ -439,6 +444,7 @@ public class FavoriteListService extends PollenServiceSupport {
protected FavoriteList getFavoriteList(PollenUser user, String favoriteListId) {
FavoriteList result = getFavoriteListDao().findByTopiaId(favoriteListId);
+
if (!user.containsFavoriteList(result)) {
throw new InvalidEntityLinkException(PollenUser.PROPERTY_FAVORITE_LIST, user, result);
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollService.java
index 08c1ada..f0ea7a1 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollService.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollService.java
@@ -23,7 +23,6 @@ package org.chorem.pollen.services.service;
* #L%
*/
-import com.google.common.collect.ImmutableSet;
import org.apache.commons.collections4.CollectionUtils;
import org.chorem.pollen.persistence.entity.Choice;
import org.chorem.pollen.persistence.entity.Poll;
@@ -51,46 +50,50 @@ import static org.nuiton.i18n.I18n.l;
*/
public class PollService extends PollenServiceSupport {
- public ImmutableSet<PollBean> getPolls() {
+ public Set<PollBean> getPolls() {
checkIsConnected();
checkIsAdmin();
List<Poll> polls = getPollDao().findAll();
- return copyAsSet(PollBean.class, polls);
+ Set<PollBean> pollBeans = copyAsSet(PollBean.class, polls);
+ return pollBeans;
}
- public ImmutableSet<PollBean> getCreatedPolls() {
+ public Set<PollBean> getCreatedPolls() {
checkIsConnected();
PollenUser connectedUser = getConnectedUser();
Set<Poll> polls = getPollDao().findAllCreated(connectedUser);
- return copyAsSet(PollBean.class, polls);
+ Set<PollBean> pollBeans = copyAsSet(PollBean.class, polls);
+ return pollBeans;
}
- public ImmutableSet<PollBean> getInvitedPolls() {
+ public Set<PollBean> getInvitedPolls() {
checkIsConnected();
PollenUser connectedUser = getConnectedUser();
Set<Poll> polls = getPollDao().findAllInvited(connectedUser);
- return copyAsSet(PollBean.class, polls);
+ Set<PollBean> pollBeans = copyAsSet(PollBean.class, polls);
+ return pollBeans;
}
- public ImmutableSet<PollBean> getParticipatedPolls() {
+ public Set<PollBean> getParticipatedPolls() {
checkIsConnected();
PollenUser connectedUser = getConnectedUser();
Set<Poll> polls = getPollDao().findAllParticipated(connectedUser);
- return copyAsSet(PollBean.class, polls);
+ Set<PollBean> pollBeans = copyAsSet(PollBean.class, polls);
+ return pollBeans;
}
@@ -99,15 +102,16 @@ public class PollService extends PollenServiceSupport {
checkNotNull(pollId);
checkPermission(PermissionVerb.readPoll, pollId);
- Poll result = getPoll0(pollId);
-
- if (isNotPermitted(PermissionVerb.editPoll, pollId)) {
+ Poll poll = getPoll0(pollId);
+ PollBean pollBean = copy(PollBean.class, poll);
- // remove creator informations
- result.setCreator(null);
+ if (isNotPermitted(PermissionVerb.editPoll, pollBean.getId())) {
+ pollBean.setPermission(null);
+ pollBean.setCreatorEmail(null);
+ pollBean.setCreatorName(null);
}
- return copy(PollBean.class, result);
+ return pollBean;
}
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteCountingService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteCountingService.java
index 1995ab0..0921474 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteCountingService.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteCountingService.java
@@ -35,7 +35,6 @@ import org.chorem.pollen.services.bean.PollResultBean;
*/
public class VoteCountingService extends PollenServiceSupport {
- //GET /poll/{pollId}/results
public PollResultBean getResult(String pollId) {
Preconditions.checkNotNull(pollId);
Poll poll = getPollService().getPoll0(pollId);
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteService.java
index f87e237..e9de3e1 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteService.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteService.java
@@ -53,9 +53,16 @@ public class VoteService extends PollenServiceSupport {
checkNotNull(pollId);
Poll poll = getPollService().getPoll0(pollId);
- //FIXME Use a certain order
- List<Vote> votes = getVoteDao().forPollEquals(poll).findAll();
- return copyAsList(VoteBean.class, votes);
+ List<Vote> votes = getVoteDao().findAll(poll);
+ List<VoteBean> voteBeans = copyAsList(VoteBean.class, votes);
+ for (VoteBean voteBean : voteBeans) {
+
+ if (isNotPermitted(PermissionVerb.editVote, voteBean.getId())) {
+ voteBean.setPermission(null);
+ }
+
+ }
+ return voteBeans;
}
@@ -67,7 +74,13 @@ public class VoteService extends PollenServiceSupport {
Poll poll = getPollService().getPoll0(pollId);
Vote result = getVote(poll, voteId);
- return copy(VoteBean.class, result);
+ VoteBean voteBean = copy(VoteBean.class, result);
+
+ if (isNotPermitted(PermissionVerb.editVote, voteBean.getId())) {
+ voteBean.setPermission(null);
+ }
+
+ return voteBean;
}
@@ -111,7 +124,8 @@ public class VoteService extends PollenServiceSupport {
getNotificationService().onVoteEdited(poll, result);
- return copy(VoteBean.class, result);
+ VoteBean voteBean = copy(VoteBean.class, result);
+ return voteBean;
}
@@ -261,5 +275,6 @@ public class VoteService extends PollenServiceSupport {
result.setVoteValue(source.getVoteValue());
return result;
+
}
}
--
To stop receiving notification emails like this one, please contact
Chorem.org SCM administrator <admin+scm(a)chorem.org>.
1
0
This is an automated email from the git hooks/post-receive script.
unknown user pushed a commit to branch devel
in repository Pollen.
commit 1e5d9e67574f2d1e7a366d461b274846e62147f0
Author: Tony CHEMIT <chemit(a)codelutin.com>
Date: Wed May 21 18:31:30 2014 +0200
update libs
---
pom.xml | 27 +++++++++++----------------
1 file changed, 11 insertions(+), 16 deletions(-)
diff --git a/pom.xml b/pom.xml
index e159774..1ab4552 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>mavenpom4redmine</artifactId>
- <version>5.0.6</version>
+ <version>5.0.7</version>
</parent>
<groupId>org.chorem</groupId>
@@ -162,25 +162,26 @@
<!-- customized versions -->
<webmotionVersion>2.4.1-SNAPSHOT</webmotionVersion>
- <nuitonI18nVersion>3.0</nuitonI18nVersion>
- <eugenePluginVersion>2.9-SNAPSHOT</eugenePluginVersion>
+ <nuitonI18nVersion>3.1</nuitonI18nVersion>
+ <eugenePluginVersion>2.9</eugenePluginVersion>
<topiaVersion>3.0-SNAPSHOT</topiaVersion>
<nuitonWebVersion>1.16</nuitonWebVersion>
- <nuitonUtilsVersion>2.7.1</nuitonUtilsVersion>
+ <nuitonUtilsVersion>3.0-rc-2</nuitonUtilsVersion>
<nuitonConfigVersion>3.0-alpha-2</nuitonConfigVersion>
<nuitonCsvVersion>3.0-alpha-3</nuitonCsvVersion>
<nuitonValidatorVersion>3.0-alpha-1</nuitonValidatorVersion>
- <h2Version>1.3.173</h2Version>
+ <h2Version>1.4.178</h2Version>
<postgresqlVersion>9.1-901-1.jdbc4</postgresqlVersion>
- <shiroVersion>1.2.2</shiroVersion>
- <slf4jVersion>1.7.6</slf4jVersion>
+ <shiroVersion>1.2.3</shiroVersion>
+ <slf4jVersion>1.7.7</slf4jVersion>
<jettyVersion>9.0.3.v20130506</jettyVersion>
- <tomcatEmbedVersion>7.0.47</tomcatEmbedVersion>
+ <tomcatEmbedVersion>7.0.50</tomcatEmbedVersion>
+ <tomcatEmbedVersion>8.0.5</tomcatEmbedVersion>
<hibernateVersion>4.3.5.Final</hibernateVersion>
<seleniumVersion>2.33.0</seleniumVersion>
<mockitoVersion>1.9.5</mockitoVersion>
- <httpCommonsHttpclientVersion>4.2.3</httpCommonsHttpclientVersion>
+ <httpCommonsHttpclientVersion>4.3.3</httpCommonsHttpclientVersion>
<pollenI18nBundle>pollen-i18n</pollenI18nBundle>
<!-- license to use -->
@@ -394,7 +395,7 @@
<dependency>
<groupId>com.github.spullara.mustache.java</groupId>
<artifactId>compiler</artifactId>
- <version>0.8.13</version>
+ <version>0.8.15</version>
</dependency>
<!--dependency>
@@ -576,12 +577,6 @@
</plugin>
<plugin>
- <groupId>org.nuiton</groupId>
- <artifactId>nuiton-utils-maven-report-plugin</artifactId>
- <version>${nuitonUtilsVersion}</version>
- </plugin>
-
- <plugin>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>${projectInfoReportsPluginVersion}</version>
</plugin>
--
To stop receiving notification emails like this one, please contact
Chorem.org SCM administrator <admin+scm(a)chorem.org>.
1
0
This is an automated email from the git hooks/post-receive script.
unknown user pushed a commit to branch devel
in repository Pollen.
commit 9f3004b05b5a0eb9beb831744724e0447c24576d
Author: Adrien Garandel <a.garandel(a)dralagen.fr>
Date: Wed May 21 18:29:04 2014 +0200
check permission for edit poll
---
pollen-ui-angular/src/main/webapp/js/controllers/pollCtrl.js | 3 +++
1 file changed, 3 insertions(+)
diff --git a/pollen-ui-angular/src/main/webapp/js/controllers/pollCtrl.js b/pollen-ui-angular/src/main/webapp/js/controllers/pollCtrl.js
index 74b03ec..41dd6fc 100644
--- a/pollen-ui-angular/src/main/webapp/js/controllers/pollCtrl.js
+++ b/pollen-ui-angular/src/main/webapp/js/controllers/pollCtrl.js
@@ -242,6 +242,9 @@ angular.module('pollControllers', [])
var initPoll = function () {
Poll.get({pollId:$routeParams.pollId}).$promise.then(function (poll) {
+ if (angular.isUndefined(poll.permission)) {
+ $location.path('/');
+ }
$scope.data.poll = poll;
});
PollChoice.query({pollId:$routeParams.pollId}).$promise.then(function (choices) {
--
To stop receiving notification emails like this one, please contact
Chorem.org SCM administrator <admin+scm(a)chorem.org>.
1
0
This is an automated email from the git hooks/post-receive script.
unknown user pushed a commit to branch devel
in repository Pollen.
commit 8b32246d284337b9446dfd5d27caeed50cb36e92
Author: Adrien Garandel <a.garandel(a)dralagen.fr>
Date: Wed May 21 18:01:11 2014 +0200
complete menu
---
pollen-ui-angular/src/main/webapp/index.html | 20 +++++++++++++++++---
1 file changed, 17 insertions(+), 3 deletions(-)
diff --git a/pollen-ui-angular/src/main/webapp/index.html b/pollen-ui-angular/src/main/webapp/index.html
index 4142580..ce64f62 100644
--- a/pollen-ui-angular/src/main/webapp/index.html
+++ b/pollen-ui-angular/src/main/webapp/index.html
@@ -43,15 +43,14 @@
</head>
<body>
-<nav class="navbar navbar-inverse navbar-static-top" ng-controller="UserLoginCtrl">
+<nav class="navbar navbar-inverse navbar-static-top">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="#">Pollen</a>
</div>
- <div class="collapse navbar-collapse">
+ <div class="collapse navbar-collapse" ng-controller="UserLoginCtrl">
<ul class="nav navbar-nav">
<li><a href="#/poll/create">Creer</a></li>
- <li ng-show="currentUser.login"><a href="#/poll/list/created">Liste</a></li>
</ul>
<ul class="nav navbar-nav pull-right">
<li ng-show="!currentUser.login">
@@ -93,6 +92,21 @@
</li>
<li class="divider"></li>
+
+ <li>
+ <a href="#/poll/list/created"> Sondage Créé </a>
+ </li>
+
+ <li>
+ <a href="#/poll/list/participated"> Sondage Participé </a>
+ </li>
+
+ <li>
+ <a href="#/poll/list/invited"> Sondage Invité </a>
+ </li>
+
+ <li class="divider"></li>
+
<li>
<a ng-click="logout()">Deconnexion</a>
</li>
--
To stop receiving notification emails like this one, please contact
Chorem.org SCM administrator <admin+scm(a)chorem.org>.
1
0