Search in sources :

Example 16 with UserDO

use of org.neusoft.neubbs.entity.UserDO in project neubbs by nuitcoder.

the class AccountController method updateUserEmail.

/**
 * 修改邮箱
 *
 * @param requestBodyParamsMap request-body 内 JSON 数据
 * @return ApiJsonDTO 接口 JSON 传输对象
 */
@LoginAuthorization
@RequestMapping(value = "/update-email", method = RequestMethod.POST, consumes = "application/json")
public ApiJsonDTO updateUserEmail(@RequestBody Map<String, Object> requestBodyParamsMap) {
    String username = (String) requestBodyParamsMap.get(ParamConst.USERNAME);
    String newEmail = (String) requestBodyParamsMap.get(ParamConst.EMAIL);
    validationService.check(ParamConst.USERNAME, username).check(ParamConst.EMAIL, newEmail);
    UserDO cookieUser = secretService.getUserInfoByAuthentication(httpService.getAuthenticationCookieValue());
    userService.confirmUserMatchCookieUser(username, cookieUser);
    userService.alterUserEmail(username, newEmail);
    return new ApiJsonDTO().success();
}
Also used : UserDO(org.neusoft.neubbs.entity.UserDO) ApiJsonDTO(org.neusoft.neubbs.dto.ApiJsonDTO) LoginAuthorization(org.neusoft.neubbs.controller.annotation.LoginAuthorization) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 17 with UserDO

use of org.neusoft.neubbs.entity.UserDO in project neubbs by nuitcoder.

the class AccountControllerTest method testRegisterAccountSuccess.

/**
 * 测试 /api/account/register
 *      - 注册账户成功
 */
@Test
@Transactional
public void testRegisterAccountSuccess() throws Exception {
    // build params -> request-body
    String username = "apiTestUser";
    String password = "apiTestPassword";
    String email = "apiTestEmail@neubBs.com";
    String requestBody = "{\"username\":\"" + username + "\"," + "\"password\":\"" + password + "\"," + "\"email\":\"" + email + "\"}";
    System.out.println("input request-body: " + requestBody);
    MvcResult result = mockMvc.perform(MockMvcRequestBuilders.post("/api/account/register").contentType(MediaType.APPLICATION_JSON).content(requestBody).accept(MediaType.APPLICATION_JSON)).andExpect(MockMvcResultMatchers.jsonPath("$.success").value(true)).andExpect(MockMvcResultMatchers.jsonPath("$.message").value("")).andExpect(MockMvcResultMatchers.jsonPath("$.model").exists()).andReturn();
    util.isExistKeyItems(result, "email", "sex", "birthday", "position", "description", "avator", "state", "createtime", "userid", "username");
    // validate 'forum_user_action'
    UserDO user = userDAO.getUserByName(username);
    Assert.assertNotNull(userActionDAO.getUserAction(user.getId()));
    // so need to remove user personal directory in ftp server, because register account automatic create
    FtpUtil.deleteDirectory("/user/" + user.getId() + "-" + username);
    util.printSuccessMessage();
}
Also used : UserDO(org.neusoft.neubbs.entity.UserDO) MvcResult(org.springframework.test.web.servlet.MvcResult) Test(org.junit.Test) Transactional(javax.transaction.Transactional)

Example 18 with UserDO

use of org.neusoft.neubbs.entity.UserDO in project neubbs by nuitcoder.

the class AccountControllerTest method testValidateActivateTokenSuccess.

/**
 * 测试 /api/account/validate
 *      - 验证 Token(来自激活邮件),激活用户成功
 */
@Test
@Transactional
public void testValidateActivateTokenSuccess() throws Exception {
    // register new user
    UserDO testUser = userService.registerUser("testUser", "123456", "testUser@test.com");
    // build token
    // String token = ((ISecretService) webApplicationContext.getBean("secretServiceImpl")).generateValidateEmailToken(testUser.getEmail());
    String token = SecretUtil.encodeBase64(testUser.getEmail() + "-" + StringUtil.getTodayTwentyFourClockTimestamp());
    // validate token and activate user
    mockMvc.perform(MockMvcRequestBuilders.get("/api/account/validate").param("token", token)).andExpect(MockMvcResultMatchers.jsonPath("$.success").value(true)).andExpect(MockMvcResultMatchers.jsonPath("$.message").value("")).andExpect(MockMvcResultMatchers.jsonPath("$.model").exists());
    // again validate database user activated state
    Assert.assertTrue(userService.getUserInfoByEmail(testUser.getEmail()).getState() == 1);
    util.printSuccessMessage();
}
Also used : UserDO(org.neusoft.neubbs.entity.UserDO) Test(org.junit.Test) Transactional(javax.transaction.Transactional)

Example 19 with UserDO

use of org.neusoft.neubbs.entity.UserDO in project neubbs by nuitcoder.

the class AccountControllerTest method testUpdateUserEmailSuccess.

/**
 * 测试 /api/account/update-email
 *      - 测试修改邮箱成功
 *      - 需要权限:@LoginAuthorization
 */
@Test
@Transactional
public void testUpdateUserEmailSuccess() throws Exception {
    String username = "suvan";
    String newEmail = "newEmail@email.com";
    String requestBody = "{\"username\":\"" + username + "\",\"email\":\"" + newEmail + "\"}";
    System.out.println("input request-body: " + requestBody);
    mockMvc.perform(MockMvcRequestBuilders.post("/api/account/update-email").cookie(util.getAlreadyLoginUserCookie()).contentType(MediaType.APPLICATION_JSON).content(requestBody).accept(MediaType.APPLICATION_JSON)).andExpect(MockMvcResultMatchers.jsonPath("$.success").value(true)).andExpect(MockMvcResultMatchers.jsonPath("$.message").value("")).andExpect(MockMvcResultMatchers.jsonPath("$.model").exists());
    // again validate database user
    UserDO user = userService.getUserInfoByName(username);
    Assert.assertNotNull(user);
    Assert.assertEquals(newEmail, user.getEmail());
    util.printSuccessMessage();
}
Also used : UserDO(org.neusoft.neubbs.entity.UserDO) Test(org.junit.Test) Transactional(javax.transaction.Transactional)

Example 20 with UserDO

use of org.neusoft.neubbs.entity.UserDO in project neubbs by nuitcoder.

the class AccountControllerTest method testUpdateUserPassword.

/**
 * 测试 /api/account/update-password
 *      - 账户修改密码成功
 *      - 需要权限:@LoginAuthorization @AccountActivation
 */
@Test
@Transactional
public void testUpdateUserPassword() throws Exception {
    String username = "suvan";
    String newPassword = "new123456";
    String requestBody = "{\"username\":\"" + username + "\",\"password\":\"" + newPassword + "\"}";
    System.out.println("input request-body:" + requestBody);
    mockMvc.perform(MockMvcRequestBuilders.post("/api/account/update-password").cookie(util.getAlreadyLoginUserCookie()).contentType(MediaType.APPLICATION_JSON).content(requestBody).accept(MediaType.APPLICATION_JSON)).andExpect(MockMvcResultMatchers.jsonPath("$.success").value(true)).andExpect(MockMvcResultMatchers.jsonPath("$.message").value("")).andExpect(MockMvcResultMatchers.jsonPath("$.model").exists());
    // again validate database user
    UserDO user = userService.getUserInfoByName(username);
    String secretPassword = SecretUtil.encryptMd5(SecretUtil.encryptMd5(newPassword) + newPassword);
    Assert.assertEquals(secretPassword, user.getPassword());
    util.printSuccessMessage();
}
Also used : UserDO(org.neusoft.neubbs.entity.UserDO) Test(org.junit.Test) Transactional(javax.transaction.Transactional)

Aggregations

UserDO (org.neusoft.neubbs.entity.UserDO)60 Test (org.junit.Test)28 Transactional (javax.transaction.Transactional)21 ApiJsonDTO (org.neusoft.neubbs.dto.ApiJsonDTO)15 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)15 AccountActivation (org.neusoft.neubbs.controller.annotation.AccountActivation)11 LoginAuthorization (org.neusoft.neubbs.controller.annotation.LoginAuthorization)11 Cookie (javax.servlet.http.Cookie)6 JSONArray (com.alibaba.fastjson.JSONArray)4 Map (java.util.Map)4 LinkedHashMap (java.util.LinkedHashMap)3 UserActionDO (org.neusoft.neubbs.entity.UserActionDO)3 ServiceException (org.neusoft.neubbs.exception.ServiceException)3 TopicContentDO (org.neusoft.neubbs.entity.TopicContentDO)2 TopicReplyDO (org.neusoft.neubbs.entity.TopicReplyDO)2 UserDynamicDO (org.neusoft.neubbs.entity.UserDynamicDO)2 PermissionException (org.neusoft.neubbs.exception.PermissionException)2 HandlerMethod (org.springframework.web.method.HandlerMethod)2 JWTVerifier (com.auth0.jwt.JWTVerifier)1 TokenExpiredException (com.auth0.jwt.exceptions.TokenExpiredException)1