use of com.vmware.flowgate.util.WormholeUserDetails in project flowgate by vmware.
the class AuthController method updateUser.
// Update a user
@ResponseStatus(HttpStatus.OK)
@RequestMapping(value = "/user", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE)
public void updateUser(@RequestBody WormholeUser user, HttpServletRequest request) {
WormholeUserDetails userDetail = accessTokenService.getCurrentUser(request);
Optional<WormholeUser> currentUserOptional = userRepository.findById(userDetail.getUserId());
WormholeUser currentUser = currentUserOptional.get();
WormholeUser old = null;
if (currentUser.getUserName().equals(user.getUserName())) {
old = currentUser;
} else if (currentUser.getRoleNames().contains(FlowgateConstant.Role_admin)) {
Optional<WormholeUser> oldUserOptional = userRepository.findById(user.getId());
old = oldUserOptional.get();
} else {
throw new WormholeRequestException(HttpStatus.FORBIDDEN, "Forbidden", null);
}
if (old == null) {
throw new WormholeRequestException(HttpStatus.NOT_FOUND, "User not found", null);
}
if (user.getPassword() != null && !"".equals(user.getPassword().trim())) {
BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
old.setPassword(encoder.encode(user.getPassword()));
old.setLastPasswordResetDate(new Date().getTime());
}
if (user.getEmailAddress() != null && !"".equals(user.getEmailAddress().trim())) {
old.setEmailAddress(user.getEmailAddress());
}
if (user.getRoleNames() != null) {
old.setRoleNames(user.getRoleNames());
}
userRepository.save(old);
}
use of com.vmware.flowgate.util.WormholeUserDetails in project flowgate by vmware.
the class AuthController method readUserByName.
// Read a user by user name
@RequestMapping(value = "/user/username/{name}", method = RequestMethod.GET)
public WormholeUser readUserByName(@PathVariable(required = false) String name, HttpServletRequest request) {
WormholeUserDetails userDetail = accessTokenService.getCurrentUser(request);
Optional<WormholeUser> currentUserOptional = userRepository.findById(userDetail.getUserId());
WormholeUser user = null;
WormholeUser currentUser = currentUserOptional.get();
if (currentUser.getRoleNames().contains(FlowgateConstant.Role_admin)) {
user = userRepository.findOneByUserName(name);
} else if (currentUser.getUserName().equals(name)) {
user = currentUser;
} else {
throw new WormholeRequestException(HttpStatus.FORBIDDEN, "Forbidden", null);
}
if (user != null) {
return DesensitizationUserData.desensitizationUser(user);
}
return user;
}
use of com.vmware.flowgate.util.WormholeUserDetails in project flowgate by vmware.
the class FacilitySoftwareController method createServer.
// create a new facilitySoftwareConfig
@RequestMapping(method = RequestMethod.POST)
@ResponseStatus(HttpStatus.CREATED)
public void createServer(@RequestBody FacilitySoftwareConfig config, HttpServletRequest request) {
HandleURL handleURL = new HandleURL();
config.setServerURL(handleURL.formatURL(config.getServerURL()));
if (repository.findOneByServerURL(config.getServerURL()) != null) {
String message = String.format("The server %s is already exsit.", config.getServerURL());
throw new WormholeRequestException(message);
}
serverValidationService.validateFacilityServer(config);
IntegrationStatus integrationStatus = new IntegrationStatus();
integrationStatus.setRetryCounter(FlowgateConstant.DEFAULTNUMBEROFRETRIES);
integrationStatus.setStatus(IntegrationStatus.Status.ACTIVE);
config.setIntegrationStatus(integrationStatus);
WormholeUserDetails user = accessTokenService.getCurrentUser(request);
config.setUserId(user.getUserId());
encryptServerPassword(config);
BaseDocumentUtil.generateID(config);
repository.save(config);
decryptServerPassword(config);
notifyFacilityWorker(config);
}
use of com.vmware.flowgate.util.WormholeUserDetails in project flowgate by vmware.
the class SDDCSoftwareController method queryServer.
@RequestMapping(value = "/page/{pageNumber}/pagesize/{pageSize}", method = RequestMethod.GET)
public Page<SDDCSoftwareConfig> queryServer(@PathVariable("pageNumber") int currentPage, @PathVariable("pageSize") int pageSize, HttpServletRequest request) {
if (currentPage < FlowgateConstant.defaultPageNumber) {
currentPage = FlowgateConstant.defaultPageNumber;
} else if (pageSize <= 0) {
pageSize = FlowgateConstant.defaultPageSize;
} else if (pageSize > FlowgateConstant.maxPageSize) {
pageSize = FlowgateConstant.maxPageSize;
}
PageRequest pageRequest = PageRequest.of(currentPage - 1, pageSize);
WormholeUserDetails user = accessTokenService.getCurrentUser(request);
try {
Page<SDDCSoftwareConfig> result = sddcRepository.findAllByUserId(user.getUserId(), pageRequest);
for (SDDCSoftwareConfig sddcSoftwareConfig : result.getContent()) {
sddcSoftwareConfig.setPassword(null);
}
return result;
} catch (Exception e) {
throw new WormholeRequestException(e.getMessage());
}
}
use of com.vmware.flowgate.util.WormholeUserDetails in project flowgate by vmware.
the class AuthControllerTest method updateUserExample1.
@Test
public void updateUserExample1() throws Exception {
WormholeUserDetails userdetail = new WormholeUserDetails();
String userId = UUID.randomUUID().toString();
userdetail.setUserId(userId);
List<String> rolenames = new ArrayList<String>();
rolenames.add("admin");
WormholeUser adminUser = new WormholeUser();
adminUser.setUserName("admin");
adminUser.setRoleNames(rolenames);
adminUser.setId(userId);
userRepository.save(adminUser);
Mockito.doReturn(userdetail).when(tokenService).getCurrentUser(any());
WormholeUser user = createUser();
userRepository.save(user);
this.mockMvc.perform(put("/v1/auth/user").contentType(MediaType.APPLICATION_JSON_VALUE).content(objectMapper.writeValueAsString(user))).andExpect(status().isOk()).andDo(document("AuthController-updateUser-example", requestFields(fieldWithPath("id").description("ID of User, created by flowgate"), fieldWithPath("userName").description("userName.").type(JsonFieldType.STRING), fieldWithPath("gender").description("gender").type(JsonFieldType.NUMBER), fieldWithPath("password").description("password").type(JsonFieldType.STRING), fieldWithPath("mobile").description("mobile").type(JsonFieldType.STRING), fieldWithPath("status").description("status").type(JsonFieldType.NUMBER), fieldWithPath("createTime").description("createTime").type(Date.class), fieldWithPath("emailAddress").description("emailAddress").type(JsonFieldType.STRING), fieldWithPath("roleNames").description("roleNames").type(List.class), fieldWithPath("userGroupIDs").description("userGroupIDs").type(List.class), fieldWithPath("lastPasswordResetDate").description("lastPasswordResetDate").type(JsonFieldType.NUMBER)))).andReturn();
userRepository.deleteById(user.getId());
userRepository.deleteById(adminUser.getId());
}
Aggregations