This is an automated email from the git hooks/post-receive script. New commit to branch devel in repository Pollen. See http://git.None/Pollen.git commit 220b166c5ef0c4f91b7be676e7a85fcddca3fe1f Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed May 28 20:42:24 2014 +0200 use only email as login --- .../persistence/entity/PollenUserTopiaDao.java | 5 -- pollen-persistence/src/main/xmi/pollen.zargo | Bin 18501 -> 18454 bytes .../org/chorem/pollen/rest/api/JsonHelper.java | 4 +- .../org/chorem/pollen/rest/api/AuthApiTest.java | 8 +- .../chorem/pollen/rest/api/PollenUserApiTest.java | 4 +- .../pollen/services/bean/PollenUserBean.java | 12 --- .../pollen/services/service/PollenUserService.java | 18 +---- .../service/security/PollenSecurityRealm.java | 2 +- .../services/service/security/SecurityService.java | 4 +- pollen-services/src/main/resources/fixtures.yaml | 3 - .../services/service/PollenUserServiceTest.java | 28 ++++--- pollen-ui-angular/src/main/webapp/index.html | 8 +- .../src/main/webapp/js/controllers/userCtrl.js | 2 +- .../src/main/webapp/partials/user-edit.html | 2 +- .../src/main/webapp/partials/user-login.html | 2 +- .../src/main/webapp/partials/user-register.html | 82 +++++++++------------ 16 files changed, 69 insertions(+), 115 deletions(-) diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollenUserTopiaDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollenUserTopiaDao.java index f1331fa..b040a79 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollenUserTopiaDao.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollenUserTopiaDao.java @@ -31,11 +31,6 @@ import java.util.List; */ public class PollenUserTopiaDao extends AbstractPollenUserTopiaDao<PollenUser> { - public boolean loginExists(String login) { - boolean exists = forLoginEquals(login).exists(); - return exists; - } - public boolean emailExists(String email) { boolean exists = forEmailEquals(email).exists(); return exists; diff --git a/pollen-persistence/src/main/xmi/pollen.zargo b/pollen-persistence/src/main/xmi/pollen.zargo index 13a00d2..271cc74 100644 Binary files a/pollen-persistence/src/main/xmi/pollen.zargo and b/pollen-persistence/src/main/xmi/pollen.zargo differ diff --git a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/JsonHelper.java b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/JsonHelper.java index 863a2b1..e30c5a4 100644 --- a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/JsonHelper.java +++ b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/JsonHelper.java @@ -134,7 +134,9 @@ public class JsonHelper { src.encode(idFactory); JsonObject object = new JsonObject(); - object.add("permission", new JsonPrimitive(src.getPermission())); + if (src.getPermission()!=null) { + object.add("permission", new JsonPrimitive(src.getPermission())); + } object.add("id", new JsonPrimitive(src.getReducedId())); result = object; diff --git a/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/AuthApiTest.java b/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/AuthApiTest.java index 308447b..fdef569 100644 --- a/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/AuthApiTest.java +++ b/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/AuthApiTest.java @@ -46,7 +46,7 @@ public class AuthApiTest extends AbstractPollenRestApiTest { public void login() throws URISyntaxException, IOException { Request request = createRequest("/v1/login") - .addParameter("login", "admin") + .addParameter("login", "admin@pollen.org") .addParameter("password", "admin") .Post(); @@ -60,7 +60,7 @@ public class AuthApiTest extends AbstractPollenRestApiTest { public void loginThenLogout() throws URISyntaxException, IOException { Request login = createRequest("/v1/login") - .addParameter("login", "admin") + .addParameter("login", "admin@pollen.org") .addParameter("password", "admin") .Post(); @@ -85,7 +85,7 @@ public class AuthApiTest extends AbstractPollenRestApiTest { public void badLogin() throws URISyntaxException, IOException { Request request = createRequest("/v1/login") - .addParameter("login", "admin" + System.nanoTime()) + .addParameter("login", "admin@pollen.org" + System.nanoTime()) .addParameter("password", "admin" + System.nanoTime()) .Post(); @@ -99,7 +99,7 @@ public class AuthApiTest extends AbstractPollenRestApiTest { public void badPassword() throws URISyntaxException, IOException { Request request = createRequest("/v1/login") - .addParameter("login", "admin") + .addParameter("login", "admin@pollen.org") .addParameter("password", "admin" + System.nanoTime()) .Post(); 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 18bf5bb..16e2b2f 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 @@ -78,7 +78,7 @@ public class PollenUserApiTest extends AbstractPollenRestApiTest { @Test public void getUsers() throws Exception { - String sessionToken = login("admin", "admin"); + String sessionToken = login("admin@pollen.org", "admin"); Request request = createRequest("/v1/users").Get(); request.addHeader(PollenRestApiRequestFilter.REQUEST_HEADER_SESSION_TOKEN, sessionToken); @@ -91,7 +91,7 @@ public class PollenUserApiTest extends AbstractPollenRestApiTest { @Test public void getUser() throws Exception { - String sessionToken = login("admin", "admin"); + String sessionToken = login("admin@pollen.org", "admin"); PollenUser pollenUser = fixture("user_jean"); String userId = encodeId(pollenUser.getTopiaId()); diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/bean/PollenUserBean.java b/pollen-services/src/main/java/org/chorem/pollen/services/bean/PollenUserBean.java index 5fb38d1..b9e1239 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/bean/PollenUserBean.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/bean/PollenUserBean.java @@ -32,8 +32,6 @@ import org.chorem.pollen.persistence.entity.PollenUserImpl; */ public class PollenUserBean extends PollenBean<PollenUser> { - protected String login; - protected String name; protected boolean administrator; @@ -54,7 +52,6 @@ public class PollenUserBean extends PollenBean<PollenUser> { setEntityId(entity.getTopiaId()); setName(entity.getName()); - setLogin(entity.getLogin()); setAdministrator(entity.isAdministrator()); setLanguage(entity.getLanguage()); setEmail(entity.getEmail()); @@ -69,7 +66,6 @@ public class PollenUserBean extends PollenBean<PollenUser> { entity.setTopiaId(getEntityId()); entity.setName(getName()); - entity.setLanguage(getLogin()); entity.setAdministrator(isAdministrator()); entity.setLanguage(getLanguage()); entity.setEmail(getEmail()); @@ -79,14 +75,6 @@ public class PollenUserBean extends PollenBean<PollenUser> { } - public String getLogin() { - return login; - } - - public void setLogin(String login) { - this.login = login; - } - public String getName() { return name; } 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 21729b2..e7e3417 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 @@ -179,8 +179,6 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer PollenUserBean user = new PollenUserBean(); user.setAdministrator(true); - String login = "admin"; - user.setLogin(login); user.setEmail("admin@pollen.org"); user.setPassword("admin"); createUser(user, false); @@ -188,8 +186,6 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer user = new PollenUserBean(); user.setAdministrator(false); - login = "user"; - user.setLogin(login); user.setEmail("user@pollen.org"); user.setPassword("user"); createUser(user, false); @@ -206,24 +202,14 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer PollenUser persisted = userExists ? getUser0(user.getEntityId()) : null; PollenUserTopiaDao dao = getPollenUserDao(); - String userLogin = user.getLogin(); String userEmail = getCleanMail(user.getEmail()); - boolean loginNotBlank = checkNotBlank(errors, "login", userLogin, "login can not be empty"); - - if (loginNotBlank && !userExists) { - - check(errors, "login", !dao.loginExists(userLogin), "login already exists"); - - } - boolean emailNotblank = checkNotBlank(errors, "email", userEmail, "email can not be empty"); if (emailNotblank) { checkValidEmail(errors, "email", userEmail, "email is not valid"); - if (userExists) { // check if email is available only if has changed @@ -244,7 +230,7 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer } - boolean passwordNotBlank = checkNotBlank(errors, "password", userLogin, "password can not be empty"); + boolean passwordNotBlank = checkNotBlank(errors, "password", user.getPassword() , "password can not be empty"); if (userExists && passwordNotBlank) { @@ -304,7 +290,6 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer PollenToken emailActivation = getSecurityService().generateNewToken(); toSave = getPollenUserDao().create(); - toSave.setLogin(user.getLogin()); toSave.setEmailActivationToken(emailActivation); getSecurityService().setUserPassword(toSave, password); @@ -341,5 +326,4 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer } - } diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/security/PollenSecurityRealm.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/security/PollenSecurityRealm.java index f873a75..2c37561 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/security/PollenSecurityRealm.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/security/PollenSecurityRealm.java @@ -84,7 +84,7 @@ public class PollenSecurityRealm extends AuthorizingRealm { try { PollenUser pollenUser = - persistenceContext.getPollenUserDao().forLoginEquals(username).findUniqueOrNull(); + persistenceContext.getPollenUserDao().forEmailEquals(username).findUniqueOrNull(); if (pollenUser == null) { throw new AuthenticationException(); 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 2b2246c..a5d0359 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 @@ -80,7 +80,7 @@ public class SecurityService extends PollenServiceSupport { throw new PollenAuthenticationException(e); } - PollenUser user = getPollenUserDao().forLoginEquals(login).findUnique(); + PollenUser user = getPollenUserDao().forEmailEquals(login).findUnique(); // Generate a token PollenToken pollenToken = generateNewToken(); @@ -122,7 +122,7 @@ public class SecurityService extends PollenServiceSupport { Preconditions.checkNotNull(login); - PollenUser user = getPollenUserDao().forLoginEquals(login).findUnique(); + PollenUser user = getPollenUserDao().forEmailEquals(login).findUnique(); String newPassword = serviceContext.generatePassword(); diff --git a/pollen-services/src/main/resources/fixtures.yaml b/pollen-services/src/main/resources/fixtures.yaml index 9388393..6f02abe 100644 --- a/pollen-services/src/main/resources/fixtures.yaml +++ b/pollen-services/src/main/resources/fixtures.yaml @@ -1,6 +1,5 @@ user_tony: &tony !user - login: tony password: fake name: T email: tony@pollen.fake @@ -8,7 +7,6 @@ user_tony: user_jean: &jean !user - login: jean password: fake name: J email: jean@pollen.fake @@ -16,7 +14,6 @@ user_jean: user_julien: &julien !user - login: julien password: fake name: J email: julien@pollen.fake 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 0cdac80..80df789 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 @@ -66,7 +66,7 @@ public class PollenUserServiceTest extends AbstractPollenServiceTest { @Test public void testGetPollenUsers() throws PollenAuthenticationException, PollenInvalidSessionTokenException { - login("jean", "fake"); + login("jean@pollen.fake", "fake"); PaginationResultBean<PollenUserBean> users = service.getUsers(null); @@ -78,7 +78,7 @@ public class PollenUserServiceTest extends AbstractPollenServiceTest { @Test public void testGetPollenUser() throws PollenInvalidSessionTokenException, PollenAuthenticationException { - login("jean", "fake"); + login("jean@pollen.fake", "fake"); try { service.getUser("pollen_user_tony_" + System.nanoTime()); @@ -107,27 +107,35 @@ public class PollenUserServiceTest extends AbstractPollenServiceTest { } PollenUserBean newUser = new PollenUserBean(); - newUser.setLogin("pollen"); newUser.setEmail("pollen@pollen.org"); + try { + service.createUser(newUser, true); + Assert.fail(); + } catch (InvalidFormException e) { + // no password + assertErrorKeyFound(e, "password"); + } + newUser.setPassword("password"); + PollenEntityRef<PollenUser> savedUser = service.createUser(newUser, true); Assert.assertNotNull(savedUser); Assert.assertNotNull(savedUser.getEntityId()); PollenUserBean newUser2 = new PollenUserBean(); - newUser2.setLogin("pollen"); newUser2.setEmail("pollen@pollen.org"); try { service.createUser(newUser2, true); Assert.fail(); } catch (InvalidFormException e) { - // not available login + // no password // not available email - assertErrorKeyFound(e, "login", "email"); + assertErrorKeyFound(e, "password", "email"); } - newUser2.setLogin("pollen2"); + newUser2.setPassword("password"); + try { service.createUser(newUser2, true); Assert.fail(); @@ -145,7 +153,7 @@ public class PollenUserServiceTest extends AbstractPollenServiceTest { @Test public void testEditUser() throws InvalidFormException, PollenInvalidSessionTokenException, PollenAuthenticationException { - login("jean", "fake"); + login("jean@pollen.fake", "fake"); PollenUserBean user = service.getUser(this.user.getTopiaId()); user.setPassword("password"); @@ -155,9 +163,6 @@ public class PollenUserServiceTest extends AbstractPollenServiceTest { // getServiceContext().getPersistenceContext().getHibernateSupport().getHibernateSession().evict(user); - String originalLogin = user.getLogin(); - - user.setLogin("yetanotherlogin"); String email = "tony@pollen.org"; user.setEmail(email); @@ -174,7 +179,6 @@ public class PollenUserServiceTest extends AbstractPollenServiceTest { PollenUserBean savedUser = service.getUser(user.getEntityId()); Assert.assertNotNull(savedUser); - Assert.assertEquals(originalLogin, savedUser.getLogin()); Assert.assertEquals(email, savedUser.getEmail()); // Assert.assertNotNull(savedUser.getEmailActivationToken()); } diff --git a/pollen-ui-angular/src/main/webapp/index.html b/pollen-ui-angular/src/main/webapp/index.html index 6778c75..173af00 100644 --- a/pollen-ui-angular/src/main/webapp/index.html +++ b/pollen-ui-angular/src/main/webapp/index.html @@ -53,13 +53,13 @@ <li><a href="#/poll/create">Creer</a></li> </ul> <ul class="nav navbar-nav pull-right"> - <li ng-show="!currentUser.login"> + <li ng-show="!currentUser.id"> <a href="#/user/register/">S'enregistrer</a> </li> - <li class="divider-vertical" ng-show="!currentUser.login"></li> + <li class="divider-vertical" ng-show="!currentUser.id"></li> - <li ng-show="!currentUser.login" dropdown> + <li ng-show="!currentUser.id" dropdown> <a href="#" role="button" class="dropdown-toggle"> Connexion<strong class="caret"></strong> </a> @@ -81,7 +81,7 @@ </ul> </li> - <li class="dropdown" ng-show="currentUser.login"> + <li class="dropdown" ng-show="currentUser.id"> <a href="#" role="button" class="dropdown-toggle" data-toggle="dropdown"> {{ currentUser.name || currentUser.login }} <strong class="caret"></strong> </a> 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 2340bcf..218f6df 100644 --- a/pollen-ui-angular/src/main/webapp/js/controllers/userCtrl.js +++ b/pollen-ui-angular/src/main/webapp/js/controllers/userCtrl.js @@ -24,7 +24,7 @@ if (!angular.isDefined($scope.data)) { $scope.data = {}; } - $scope.data.user = {login:'', email:'', password:'', password2:''}; + $scope.data.user = {email:'', password:'', password2:''}; $scope.submit = function () { if ($scope.data.user.password == $scope.data.user.password2) { diff --git a/pollen-ui-angular/src/main/webapp/partials/user-edit.html b/pollen-ui-angular/src/main/webapp/partials/user-edit.html index dda3568..53ef5ce 100644 --- a/pollen-ui-angular/src/main/webapp/partials/user-edit.html +++ b/pollen-ui-angular/src/main/webapp/partials/user-edit.html @@ -37,7 +37,7 @@ <div class="control-group"> <label for="formEmail" class="col-sm-5 text-right control-label"> - Adresse E-Mail + Courriel </label> <div class="col-sm-6"> diff --git a/pollen-ui-angular/src/main/webapp/partials/user-login.html b/pollen-ui-angular/src/main/webapp/partials/user-login.html index a14be4c..5d8f8e4 100644 --- a/pollen-ui-angular/src/main/webapp/partials/user-login.html +++ b/pollen-ui-angular/src/main/webapp/partials/user-login.html @@ -2,7 +2,7 @@ <div class="control-group"> <label class="control-label"> - Nom d'Utilisateur + Courriel <info-error error="restError.connexion" data="data.user"></info-error> </label> <input type="text" name='login' ng-model="data.user.login" class="form-control"/> diff --git a/pollen-ui-angular/src/main/webapp/partials/user-register.html b/pollen-ui-angular/src/main/webapp/partials/user-register.html index c658c84..6ae1a8f 100644 --- a/pollen-ui-angular/src/main/webapp/partials/user-register.html +++ b/pollen-ui-angular/src/main/webapp/partials/user-register.html @@ -18,21 +18,42 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #L% --> - <h2> Inscription sur Pollen</h2> + <h2>Créer un compte</h2> <form ng-submit="submit()" class="form-horizontal"> - <div class="control-group"> - <label for="formLogin" class="col-sm-5 text-right control-label"> - Identifiant - </label> - <div class="col-sm-6"> - <input type="text" id="formLogin" name="login" class="form-control" ng-model="data.user.login"/> + + <div class="control-group"> + + <label for="formEmail" class="col-sm-5 text-right control-label"> + Courriel + </label> + + <div class="col-sm-6"> + <input type="email" id="formEmail" name="email" class="form-control" ng-model="data.user.email"/> + </div> + <div class="col-sm-1"> + <info-error error="restError.email[0]" data="data.user.email"></info-error> + </div> </div> - <div class="col-sm-1"> - <info-error error="restError.login[0]" data="data.user.login"></info-error> + + <div class="control-group"> + <label for="formName" class="col-sm-5 text-right control-label"> + Nom + </label> + <div class="col-sm-6"> + <input type="text" id="formName" name="login" class="form-control" ng-model="data.user.name"/> + </div> + <div class="col-sm-1"> + </div> </div> - </div> - <div class="control-group"> + + <div> + <div class="col-sm-3"></div> + <div class="col-sm-8"><hr/></div> + <div class="col-sm-1"></div> + </div> + + <div class="control-group"> <label for="formPassword" class="col-sm-5 text-right control-label"> Mot de passe </label> @@ -52,47 +73,10 @@ </div> </div> - <div> - <div class="col-sm-3"></div> - <div class="col-sm-8"><hr/></div> - <div class="col-sm-1"></div> - </div> - - <div class="control-group"> - - <label for="formEmail" class="col-sm-5 text-right control-label"> - Courriel - </label> - - <div class="col-sm-6"> - <input type="email" id="formEmail" name="email" class="form-control" ng-model="data.user.email"/> - </div> - <div class="col-sm-1"> - <info-error error="restError.email[0]" data="data.user.email"></info-error> - </div> - </div> - - <div class="control-group"> - <label for="formName" class="col-sm-5 text-right control-label"> - Nom d'utilisateur - </label> - <div class="col-sm-6"> - <input type="text" id="formName" name="login" class="form-control" ng-model="data.user.name"/> - </div> - <div class="col-sm-1"> - </div> - </div> - - <div> - <div class="col-sm-3"></div> - <div class="col-sm-8"><hr /></div> - <div class="col-sm-1"></div> - </div> - <div class="control-group"> <div class="col-sm-5"></div> <div class="col-sm-6"> - <button class="btn btn-primary" type="submit">Envoyer</button> + <button class="btn btn-primary" type="submit">S'enregister</button> </div> <div class="col-sm-1"></div> </div> -- To stop receiving notification emails like this one, please contact Chorem.org SCM administrator <admin+scm@chorem.org>.