@PUT @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) @Path("firstuser") public UserUI createUser(UserForm userForm) throws IOException, IllegalArgumentException, NamespaceException, DACUnauthorizedException, UserNotFoundException { synchronized (this) { if (dContext.getUserService().hasAnyUser()) { throw UserException.validationError().message(ERROR_MSG).build(logger); } final UserName userName = new UserName(userForm.getUserConfig().getUserName()); User newUser = SimpleUser.newBuilder(userForm.getUserConfig()).setCreatedAt(System.currentTimeMillis()).build(); newUser = userService.createUser(newUser, userForm.getPassword()); dContext.getNamespaceService(SystemUser.SYSTEM_USERNAME) .addOrUpdateHome( new HomePath(HomeName.getUserHomePath(userName.getName())).toNamespaceKey(), new HomeConfig().setCtime(System.currentTimeMillis()).setOwner(userName.getName()) ); return new UserUI(new UserResourcePath(userName), userName, newUser); } } }
@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); }
/** * Helper method to create the user if the user doesn't already exists. * @param userService * @param ns Instance of {@link NamespaceService} with no user context. * @param user * @param passwd * @param fn * @param ln * @param roles * @throws Exception */ private static void createUserIfNotExists(UserService userService, NamespaceService ns, String user, String passwd, String fn, String ln) throws IOException, NamespaceException { try { userService.getUser(user); } catch (UserNotFoundException e) { User userConfig = SimpleUser.newBuilder() .setUserName(user) .setEmail(user + "@dremio.test") .setFirstName(fn) .setLastName(ln) .build(); userService.createUser(userConfig, passwd); } // Now create the home folder for the user createHomeDir(ns, user); }
@Before public void setup() throws Exception { final UserService userService = l(UserService.class); SimpleUser user1 = SimpleUser.newBuilder().setUserName("user1").setFirstName("").setLastName("").setEmail("user1@foo.com").build(); createdUser = userService.createUser(user1, "foo12bar"); }
setEmail("mark.johnson@dremio.test").setFirstName("Mark").setLastName("Johnson").build(); db = userService.createUser(db, db.getFirstName() + "1234"); md = userService.createUser(md, md.getFirstName() + "1234"); dw = userService.createUser(dw, dw.getFirstName() + "1234"); mj = userService.createUser(mj, mj.getFirstName() + "1234");
User dt = SimpleUser.newBuilder().setUserName("user").setCreatedAt(System.currentTimeMillis()). setEmail("user@mail.com").setFirstName("User").setLastName("Anonymous").build(); dt = userService.createUser(dt, "user1234"); UserLoginSession uls = expectSuccess(getAPIv2().path("/login").request(JSON).buildPost(Entity.json(new UserLogin("user", "user1234"))), UserLoginSession.class);
User userConfig1 = SimpleUser.newBuilder().setUserName(testUserName("test1")).setEmail("test1@dremio.test").setFirstName("test1") .setLastName("dremio").build(); userConfig1 = userService.createUser(userConfig1, testPassword("test1")); userConfig2 = userService.createUser(userConfig2, testPassword("test2")); userConfig3 = userService.createUser(userConfig3, testPassword("test3"));
admin = userService.createUser(admin, testPassword("admin")); user1 = userService.createUser(user1, testPassword("user1"));