Search in sources :

Example 1 with User

use of org.eclipse.vorto.repository.account.impl.User in project vorto by eclipse.

the class RepositoryConfigurationLocal method newUser.

private User newUser(String username, String password, boolean hasWatchOnRepo, String email, Role role) {
    User user = new User();
    user.setUsername(username);
    user.setPassword(encoder.encode(password));
    user.setHasWatchOnRepository(hasWatchOnRepo);
    user.setEmail(email);
    user.setRoles(role);
    user.setDateCreated(new Timestamp(System.currentTimeMillis()));
    user.setLastUpdated(new Timestamp(System.currentTimeMillis()));
    return user;
}
Also used : User(org.eclipse.vorto.repository.account.impl.User) Timestamp(java.sql.Timestamp)

Example 2 with User

use of org.eclipse.vorto.repository.account.impl.User in project vorto by eclipse.

the class HomeController method getUser.

@SuppressWarnings("unchecked")
@ApiOperation(value = "Returns the currently logged in User")
@ApiResponses(value = { @ApiResponse(code = 401, message = "Unauthorized"), @ApiResponse(code = 200, message = "OK") })
@RequestMapping(value = { "/user", "/me" }, method = RequestMethod.GET)
public ResponseEntity<Map<String, String>> getUser(Principal user, final HttpServletRequest request) {
    Map<String, String> map = new LinkedHashMap<>();
    if (user == null)
        return new ResponseEntity<Map<String, String>>(map, HttpStatus.UNAUTHORIZED);
    for (GrantedAuthority authority : SecurityContextHolder.getContext().getAuthentication().getAuthorities()) {
        map.put("role", authority.getAuthority());
    }
    if (user instanceof OAuth2Authentication) {
        OAuth2Authentication oauth2User = (OAuth2Authentication) user;
        map.put("name", oauth2User.getName());
        User registeredUser = userRepository.findByUsername(oauth2User.getName());
        if (registeredUser != null) {
            map.put("email", registeredUser.getEmail());
            map.put("isRegistered", Boolean.toString(true));
        } else {
            map.put("email", ((Map<String, String>) oauth2User.getUserAuthentication().getDetails()).get("email"));
            map.put("isRegistered", Boolean.toString(false));
        }
        Map<String, String> userDetails = ((Map<String, String>) oauth2User.getUserAuthentication().getDetails());
        map.put("loginType", userDetails.get(LOGIN_TYPE));
    } else {
        VortoUser vortoUser = (VortoUser) ((UsernamePasswordAuthenticationToken) user).getPrincipal();
        map.put("name", vortoUser.getUsername());
        map.put("email", vortoUser.getEmail());
        map.put("isRegistered", "true");
        map.put("loginType", "default");
    }
    return new ResponseEntity<Map<String, String>>(map, HttpStatus.OK);
}
Also used : ResponseEntity(org.springframework.http.ResponseEntity) User(org.eclipse.vorto.repository.account.impl.User) VortoUser(org.eclipse.vorto.repository.web.security.VortoUser) VortoUser(org.eclipse.vorto.repository.web.security.VortoUser) GrantedAuthority(org.springframework.security.core.GrantedAuthority) OAuth2Authentication(org.springframework.security.oauth2.provider.OAuth2Authentication) LinkedHashMap(java.util.LinkedHashMap) Map(java.util.Map) LinkedHashMap(java.util.LinkedHashMap) ApiOperation(io.swagger.annotations.ApiOperation) ApiResponses(io.swagger.annotations.ApiResponses) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 3 with User

use of org.eclipse.vorto.repository.account.impl.User in project vorto by eclipse.

the class UserController method updateUser.

@ApiOperation(value = "Update an existing User")
@RequestMapping(method = RequestMethod.PUT, value = "/users/{username}")
public ResponseEntity<UserDto> updateUser(Principal currentlyLoggedInUser, @ApiParam(value = " Username", required = true) @PathVariable String username, @ApiParam(value = "User Data Transfer Object", required = true) @RequestBody UserDto userDto) {
    if (!isUpdateAllowed(currentlyLoggedInUser, username, userDto)) {
        return new ResponseEntity<UserDto>(HttpStatus.UNAUTHORIZED);
    }
    User user = userRepository.findByUsername(username);
    if (user == null) {
        throw new UsernameNotFoundException("User does not exists");
    }
    user.setUsername(userDto.getUsername());
    user.setEmail(userDto.getEmail());
    user.setLastUpdated(new Timestamp(System.currentTimeMillis()));
    if (UserUtils.isAdmin(currentlyLoggedInUser)) {
        user.setHasWatchOnRepository(userDto.isHasWatchOnRepository());
    }
    userRepository.save(user);
    User updatedUser = userRepository.findByUsername(userDto.getUsername());
    return new ResponseEntity<UserDto>(UserDto.fromUser(updatedUser), HttpStatus.OK);
}
Also used : UsernameNotFoundException(org.springframework.security.core.userdetails.UsernameNotFoundException) ResponseEntity(org.springframework.http.ResponseEntity) User(org.eclipse.vorto.repository.account.impl.User) Timestamp(java.sql.Timestamp) ApiOperation(io.swagger.annotations.ApiOperation) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 4 with User

use of org.eclipse.vorto.repository.account.impl.User in project vorto by eclipse.

the class MappingTest method testCheckinValidMapping.

@Test
public void testCheckinValidMapping() throws Exception {
    UploadModelResult uploadResult = modelRepository.upload(IOUtils.toByteArray(new ClassPathResource("sample_models/Color.type").getInputStream()), "Color.type", "admin");
    assertEquals(true, uploadResult.isValid());
    assertEquals(0, modelRepository.search("*").size());
    User user = new User();
    user.setUsername("alex");
    user.setHasWatchOnRepository(true);
    Collection<User> users = new ArrayList<User>();
    users.add(user);
    when(userRepository.findAll()).thenReturn(users);
    modelRepository.checkin(uploadResult.getHandleId(), "alex");
    // hack coz it might take awhile until index is
    Thread.sleep(2000);
    // updated to do a search
    assertEquals(1, modelRepository.search("*").size());
    uploadResult = modelRepository.upload(IOUtils.toByteArray(new ClassPathResource("sample_models/sample.mapping").getInputStream()), "sample.mapping", "admin");
    assertEquals(true, uploadResult.isValid());
    modelRepository.checkin(uploadResult.getHandleId(), "alex");
    assertEquals(1, modelRepository.search("-Mapping").size());
}
Also used : UploadModelResult(org.eclipse.vorto.repository.api.upload.UploadModelResult) User(org.eclipse.vorto.repository.account.impl.User) ArrayList(java.util.ArrayList) ClassPathResource(org.springframework.core.io.ClassPathResource) Test(org.junit.Test) AbstractIntegrationTest(org.eclipse.vorto.repository.AbstractIntegrationTest)

Example 5 with User

use of org.eclipse.vorto.repository.account.impl.User in project vorto by eclipse.

the class ModelRepositoryTest method testCheckinValidModel.

@Test
public void testCheckinValidModel() throws Exception {
    UploadModelResult uploadResult = modelRepository.upload(IOUtils.toByteArray(new ClassPathResource("sample_models/Color.type").getInputStream()), "Color.type", "admin");
    assertEquals(true, uploadResult.isValid());
    assertEquals(0, modelRepository.search("*").size());
    User user1 = new User();
    user1.setUsername("alex");
    user1.setHasWatchOnRepository(true);
    User user2 = new User();
    user2.setUsername("andi");
    user2.setHasWatchOnRepository(false);
    Collection<User> recipients = new ArrayList<User>();
    recipients.add(user1);
    recipients.add(user2);
    when(userRepository.findAll()).thenReturn(recipients);
    // verify(notificationService);
    modelRepository.checkin(uploadResult.getHandleId(), user1.getUsername());
    Thread.sleep(1000);
    assertEquals(1, modelRepository.search("*").size());
}
Also used : UploadModelResult(org.eclipse.vorto.repository.api.upload.UploadModelResult) User(org.eclipse.vorto.repository.account.impl.User) ArrayList(java.util.ArrayList) ClassPathResource(org.springframework.core.io.ClassPathResource) Test(org.junit.Test) AbstractIntegrationTest(org.eclipse.vorto.repository.AbstractIntegrationTest)

Aggregations

User (org.eclipse.vorto.repository.account.impl.User)7 Test (org.junit.Test)4 ApiOperation (io.swagger.annotations.ApiOperation)2 Timestamp (java.sql.Timestamp)2 ArrayList (java.util.ArrayList)2 AbstractIntegrationTest (org.eclipse.vorto.repository.AbstractIntegrationTest)2 UploadModelResult (org.eclipse.vorto.repository.api.upload.UploadModelResult)2 ClassPathResource (org.springframework.core.io.ClassPathResource)2 ResponseEntity (org.springframework.http.ResponseEntity)2 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)2 ApiResponses (io.swagger.annotations.ApiResponses)1 Date (java.util.Date)1 LinkedHashMap (java.util.LinkedHashMap)1 Map (java.util.Map)1 ModelId (org.eclipse.vorto.repository.api.ModelId)1 ModelInfo (org.eclipse.vorto.repository.api.ModelInfo)1 CheckinMessage (org.eclipse.vorto.repository.notification.message.CheckinMessage)1 RegistrationMessage (org.eclipse.vorto.repository.notification.message.RegistrationMessage)1 VortoUser (org.eclipse.vorto.repository.web.security.VortoUser)1 GrantedAuthority (org.springframework.security.core.GrantedAuthority)1