public static Builder newBuilder(User user) { return new Builder(user.getUID(), user.getUserName(), user.getFirstName(), user.getLastName(), user.getEmail(), user.getCreatedAt(), user.getModifiedAt(), user.getVersion()); } }
@After public void teardown() throws Exception { final UserService userService = l(UserService.class); userService.deleteUser(createdUser.getUserName(), createdUser.getVersion()); }
@RolesAllowed("admin") @PUT @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) public UserUI createUser(UserForm userForm, @PathParam("userName") UserName userName) throws IOException, IllegalArgumentException, NamespaceException, DACUnauthorizedException { checkUser(userName, "create"); User newUser = SimpleUser.newBuilder(userForm.getUserConfig()).setCreatedAt(System.currentTimeMillis()).build(); newUser = userService.createUser(newUser, userForm.getPassword()); try { namespaceService.addOrUpdateHome(new HomePath(HomeName.getUserHomePath(userName.getName())).toNamespaceKey(), new HomeConfig().setCtime(System.currentTimeMillis()).setOwner(userName.getName())); } catch (Exception e) { try { userService.deleteUser(newUser.getUserName(), newUser.getVersion()); } catch (UserNotFoundException e1) { logger.warn("Could not delete a user {} after failing to create corresponding home space", userName.getName()); } finally { throw UserException.unsupportedError() .message("Could not create user '%s', make sure you don't already have a similar user with different casing", newUser.getUserName()) .addContext("Cause", e.getMessage()) .build(); } } return new UserUI(new UserResourcePath(userName), userName, newUser); }
@Before public void setup() throws Exception { clearAllDataExceptUser(); final UserService userService = l(UserService.class); // clear test users for (User userConfig: userService.getAllUsers(10000)) { if (userConfig.getUserName().startsWith(USERNAME_PREFIX)) { try { userService.deleteUser(userConfig.getUserName(), userConfig.getVersion()); } catch (UserNotFoundException e) { // ignore search index may have user thats not in kvstore. } } } }
@Test public void testNoSelfDelete() throws Exception { // Get the current user info UserUI u1 = expectSuccess(getBuilder(getAPIv2().path("user/" + SampleDataPopulator.DEFAULT_USER_NAME)).buildGet(), UserUI.class); assertEquals(SampleDataPopulator.DEFAULT_USER_NAME, u1.getUserName().getName()); final GenericErrorMessage errorDelete = expectStatus(FORBIDDEN, getBuilder( getAPIv2().path("user/" + SampleDataPopulator.DEFAULT_USER_NAME) .queryParam("version", u1.getUser().getVersion()) ).buildDelete(), GenericErrorMessage.class); assertEquals("Deletion of the user account of currently logged in user is not allowed.", errorDelete.getErrorMessage()); }
protected UserConfig toUserConfig(User user) { return new UserConfig() .setUid(user.getUID()) .setUserName(user.getUserName()) .setFirstName(user.getFirstName()) .setLastName(user.getLastName()) .setEmail(user.getEmail()) .setCreatedAt(user.getCreatedAt()) .setModifiedAt(user.getModifiedAt()) .setTag(user.getVersion()); }
assertEquals(toString(), 2, users7.getItems().size()); userService.deleteUser(db.getUserName(), db.getVersion()); userService.deleteUser(md.getUserName(), md.getVersion()); userService.deleteUser(dw.getUserName(), dw.getVersion()); userService.deleteUser(mj.getUserName(), mj.getVersion());
@Test public void testUserOCC() throws Exception { getPopulator().populateTestUsers(); doc("create user"); final User uc = SimpleUser.newBuilder().setUserName(testUserName("test11")).setEmail("test11@dremio.test").setFirstName("test11") .setLastName("dremio").build(); expectSuccess(getBuilder(getAPIv2().path("user/" + testUserName("test11"))).buildPut(Entity.json(new UserForm(uc, testPassword("test11")))), UserUI.class); UserUI u1 = expectSuccess(getBuilder(getAPIv2().path("user/" + testUserName("test11"))).buildGet(), UserUI.class); doc("update user"); final User uc2 = SimpleUser.newBuilder(u1.getUser()).setEmail("test22@dremio.test").build(); expectSuccess(getBuilder(getAPIv2().path("user/" + testUserName("test11"))).buildPost(Entity.json(new UserForm(uc2))), UserUI.class); UserUI u2 = expectSuccess(getBuilder(getAPIv2().path("user/" + testUserName("test11"))).buildGet(), UserUI.class); assertEquals(uc2.getEmail(), u2.getUser().getEmail()); doc("delete with missing version"); final GenericErrorMessage errorDelete = expectStatus(BAD_REQUEST, getBuilder(getAPIv2().path("user/" + testUserName("test11"))).buildDelete(), GenericErrorMessage.class); assertErrorMessage(errorDelete, "missing version param"); doc("delete with bad version"); final GenericErrorMessage errorDelete2 = expectStatus(CONFLICT, getBuilder(getAPIv2().path("user/" + testUserName("test11")).queryParam("version", 1234L)).buildDelete(), GenericErrorMessage.class); assertErrorMessage(errorDelete2, "tried to delete version 1234, found previous version 1"); doc("delete"); expectSuccess(getBuilder(getAPIv2().path("user/" + testUserName("test11")).queryParam("version", u2.getUser().getVersion())).buildDelete()); }
userGroupService.deleteUser(oldUserName, db.getVersion());
assertEquals(spaces3.toString(), 3, spaces3.getItems().size()); userService.deleteUser(dt.getUserName(), dt.getVersion());
@Test public void testUserChangePassword() throws Exception { doc("Creating user"); User userConfig = SimpleUser.newBuilder().setUserName(testUserName("test12")).setEmail("test1@dremio.test").setFirstName("test12") .setLastName("dremio").build(); expectSuccess(getBuilder(getAPIv2().path("user/" + testUserName("test12"))).buildPut(Entity.json(new UserForm(userConfig, testPassword("test12")))), UserUI.class); UserUI u = expectSuccess(getBuilder(getAPIv2().path("user/" + testUserName("test12"))).buildGet(), UserUI.class); doc("login"); UserLogin userLogin = new UserLogin(testUserName("test12"), testPassword("test12")); expectSuccess(getBuilder(getAPIv2().path("/login")).buildPost(Entity.json(userLogin)), UserLoginSession.class); doc("change name"); User userConfig2 = SimpleUser.newBuilder(u.getUser()).setUserName(testUserName("newTestName")).build(); expectSuccess(getBuilder(getAPIv2().path("user/" + testUserName("test12"))).buildPost(Entity.json(new UserForm(userConfig2, testPassword("test12")))), UserUI.class); UserLogin userLogin2 = new UserLogin(testUserName("newTestName"), testPassword("test12")); expectSuccess(getBuilder(getAPIv2().path("/login")).buildPost(Entity.json(userLogin2)), UserLoginSession.class); u = expectSuccess(getBuilder(getAPIv2().path("user/" + testUserName("newTestName"))).buildGet(), UserUI.class); l(UserService.class).deleteUser(new UserName(testUserName("newTestName")).getName(), u.getUser().getVersion()); }
userService.deleteUser(new UserName(testUserName("test12")).getName(), u.getUser().getVersion()); userService.deleteUser(new UserName(testUserName("test1")).getName(), u.getUser().getVersion()); u = expectSuccess(getBuilder(getAPIv2().path("user/" + testUserName("test2"))).buildGet(), UserUI.class); userService.deleteUser(new UserName(testUserName("test2")).getName(), u.getUser().getVersion()); u = expectSuccess(getBuilder(getAPIv2().path("user/" + testUserName("test3"))).buildGet(), UserUI.class); userService.deleteUser(new UserName(testUserName("test3")).getName(), u.getUser().getVersion());
@Test public void testUser() throws Exception { getPopulator().populateTestUsers(); doc("getting user info"); UserUI u1 = expectSuccess(getBuilder(getAPIv2().path("user/" + SampleDataPopulator.DEFAULT_USER_NAME)).buildGet(), UserUI.class); assertEquals(SampleDataPopulator.DEFAULT_USER_NAME, u1.getUserName().getName()); assertEquals(SampleDataPopulator.DEFAULT_USER_NAME + "@dremio.test", u1.getUser().getEmail()); // TODO: Expected error is going to change after refactoring of DAC/dependent services into a common module. expectError(CLIENT_ERROR, getBuilder(getAPIv2().path("user/dac")).buildGet(), GenericErrorMessage.class); doc("Creating user"); final User userConfig2 = SimpleUser.newBuilder().setUserName(testUserName("test11")).setEmail("test11@dremio.test").setFirstName("test11") .setLastName("dremio").build(); expectSuccess(getBuilder(getAPIv2().path("user/" + testUserName("test11"))).buildPut(Entity.json(new UserForm(userConfig2, testPassword("test11")))), UserUI.class); UserUI u2 = expectSuccess(getBuilder(getAPIv2().path("user/" + testUserName("test11"))).buildGet(), UserUI.class); assertEquals(userConfig2.getEmail(), u2.getUser().getEmail()); assertEquals(userConfig2.getFirstName(), u2.getUser().getFirstName()); assertEquals(userConfig2.getLastName(), u2.getUser().getLastName()); doc("updating user"); User uc3 = SimpleUser.newBuilder(u2.getUser()).setEmail("test2@dremio.test").build(); expectSuccess(getBuilder(getAPIv2().path("user/" + testUserName("test11"))).buildPost(Entity.json(new UserForm(uc3))), UserUI.class); UserUI u3 = expectSuccess(getBuilder(getAPIv2().path("user/" + testUserName("test11"))).buildGet(), UserUI.class); assertEquals(u3.getUser().getEmail(), uc3.getEmail()); assertEquals(u3.getUser().getFirstName(), uc3.getFirstName()); assertEquals(u3.getUser().getLastName(), uc3.getLastName()); doc("deleting user"); expectSuccess(getBuilder(getAPIv2().path("user/" + testUserName("test11")).queryParam("version", u3.getUser().getVersion())).buildDelete()); // TODO: Expected error is going to change after refactoring of DAC/dependent services into a common module. expectError(CLIENT_ERROR, getBuilder(getAPIv2().path("user/" + testUserName("test11"))).buildGet(), GenericErrorMessage.class); }
.setVersion(user.getUser().getVersion()) .build(); user = expectSuccess(getAPIv2().path("user/" + testUserName("user2")).request(JSON).header(HttpHeader.AUTHORIZATION.toString(), .setVersion(user.getUser().getVersion()) .build();