/** * Some unit tests delete all users. This is a way to restore them. This logic is very similar to * logic in HibernateTestSessionFactory afterPropertiesSet function */ protected void restoreDefaultUsers() { try { // Create an admin user to test admin functions UserRole adminRole = new UserRole("admin"); Set<UserRole.Permission> perms = new HashSet<UserRole.Permission>(); perms.add(UserRole.Permission.ACCESS_ADMIN); perms.add(UserRole.Permission.INGEST_ARTICLE); perms.add(UserRole.Permission.MANAGE_FLAGS); perms.add(UserRole.Permission.MANAGE_ANNOTATIONS); perms.add(UserRole.Permission.MANAGE_USERS); perms.add(UserRole.Permission.MANAGE_ROLES); perms.add(UserRole.Permission.MANAGE_JOURNALS); perms.add(UserRole.Permission.MANAGE_SEARCH); perms.add(UserRole.Permission.MANAGE_CACHES); perms.add(UserRole.Permission.CROSS_PUB_ARTICLES); perms.add(UserRole.Permission.DELETE_ARTICLES); perms.add(UserRole.Permission.VIEW_UNPUBBED_ARTICLES); adminRole.setPermissions(perms); dummyDataStore.store(adminRole); UserProfile admin = new UserProfile(); admin.setAuthId(BaseTest.DEFAULT_ADMIN_AUTHID); admin.setEmail("*****@*****.**"); admin.setDisplayName("testAdmin"); admin.setPassword("adminPass"); admin.setRoles(new HashSet<UserRole>(1)); admin.getRoles().add(adminRole); dummyDataStore.store(admin); UserRole editorialRole = new UserRole("editorial"); perms = new HashSet<UserRole.Permission>(); perms.add(UserRole.Permission.ACCESS_ADMIN); perms.add(UserRole.Permission.VIEW_UNPUBBED_ARTICLES); editorialRole.setPermissions(perms); dummyDataStore.store(editorialRole); UserProfile editorial = new UserProfile(); editorial.setAuthId(BaseTest.DEFAULT_EDITORIAL_AUTHID); editorial.setEmail("*****@*****.**"); editorial.setDisplayName("editorialAdmin"); editorial.setPassword("pass"); editorial.setRoles(new HashSet<UserRole>(1)); editorial.getRoles().add(editorialRole); dummyDataStore.store(editorial); UserProfile nonAdmin = new UserProfile(); nonAdmin.setAuthId(BaseTest.DEFAULT_USER_AUTHID); nonAdmin.setEmail("*****@*****.**"); nonAdmin.setDisplayName("testNonAdmin"); nonAdmin.setPassword("nonAdminPass"); dummyDataStore.store(nonAdmin); } catch (DataAccessException ex) { // must've already inserted the users } }
/** * Copy fields for updating or display. Does <b>not</b> copy some fields: * * <ul> * <li>ID: never overwrite IDs on hibernate objects * <li>userAccountUri: these don't come down from display layer, so we don't want to overwrite * with null * <li>userProfileUri: these don't come down from display layer, so we don't want to overwrite * with null * <li>roles: don't want to overwrite a user's roles when updating their profile * </ul> * * @param source * @param destination */ private void copyFields(UserProfile source, UserProfile destination) { destination.setAuthId(source.getAuthId()); destination.setRealName(source.getRealName()); destination.setGivenNames(source.getGivenNames()); destination.setSurname(source.getSurname()); destination.setTitle(source.getTitle()); destination.setGender(source.getGender()); destination.setEmail(source.getEmail()); destination.setHomePage(source.getHomePage()); destination.setWeblog(source.getWeblog()); destination.setPublications(source.getPublications()); destination.setDisplayName(source.getDisplayName()); destination.setSuffix(source.getSuffix()); destination.setPositionType(source.getPositionType()); destination.setOrganizationName(source.getOrganizationName()); destination.setOrganizationType(source.getOrganizationType()); destination.setPostalAddress(source.getPostalAddress()); destination.setCity(source.getCity()); destination.setCountry(source.getCountry()); destination.setBiography(source.getBiography()); destination.setInterests(source.getInterests()); destination.setResearchAreas(source.getResearchAreas()); destination.setOrganizationVisibility(source.getOrganizationVisibility()); destination.setAlertsJournals(source.getAlertsJournals()); }