@Override public boolean hasPersonPage(String userId){ TypedQuery<Long> query = manager.createNamedQuery(JpaPage.USER_HAS_PERSON_PAGE, Long.class); query.setParameter("userId", userId); query.setParameter("pageType", PageType.PERSON_PROFILE.toString().toUpperCase()); return query.getSingleResult() > 0; }
@Override public List<Page> getAllUserPages(String userId) { return pageRepository.getAllPagesForUserType(userId, PageType.USER.toString()); }
@Override @Transactional public Page getPersonProfilePage(String userId) { List<Page> profilePages = pageRepository.getAllPagesForUserType(userId, PageType.PERSON_PROFILE.toString()); Page personPage = null; if (profilePages.isEmpty()){ personPage = pageRepository.createPageForUser(userService.getUserById(userId), pageTemplateRepository.getDefaultPage(PageType.PERSON_PROFILE.toString())); } else { personPage = profilePages.get(0); } return personPage; }
private boolean isPersonProfilePageOrSubPage(Page page) { String pageType = page.getPageType(); String parentPageType = (page.getParentPage() == null) ? null : page.getParentPage().getPageType(); //TODO: Remove the dependency on PageType & find a more generic way to handle the visibility of pages return PageType.PERSON_PROFILE.toString().equals(pageType) || PageType.PERSON_PROFILE.toString().equals(parentPageType); }
@Override @Transactional public void registerNewUser(User user) { if(userAccountApproval){ user.setEnabled(false); } User managedUser = userRepository.save(user); pageRepository.createPageForUser(managedUser, pageTemplateRepository.getDefaultPage(PageType.PERSON_PROFILE.toString())); if(userAccountApproval && !approvalAdminEmail.isEmpty()){ Map<String, Object> templateData = new HashMap<String, Object>(); templateData.put("user", user); templateData.put("portalUrl", loginUrl); emailService.sendEmail(approvalAdminEmail, userAccountApprovalSubject, userAccountApprovalTemplate, templateData); } }
@Override @Transactional public void deletePage(String pageId) { User user = userService.getAuthenticatedUser(); // first delete the page pageRepository.delete(pageRepository.get(pageId)); // now re-sequence the page sequence numbers //TODO RAVE-237: We should be able to delete these lines. If there are gaps in the sequence numbers, then it will still //TODO RAVE-237: return values in the correct order. We only need to update sequences when there is a change in order List<PageUser> thisUsersPages = new ArrayList<PageUser>(pageRepository.getPagesForUser(user.getId(), PageType.USER.toString())); updatePageRenderSequences(thisUsersPages); }
private Page doMovePage(String pageId, String moveAfterPageId) { // get the logged in user User user = userService.getAuthenticatedUser(); // get the page to move and the page to move after PageUser movingPageUser = pageRepository.getSingleRecord(user.getId(), pageId); PageUser afterPageUser = null; int newIndex = 0; // check to see if we should move the page to beginning if (moveAfterPageId != MOVE_PAGE_DEFAULT_POSITION_INDEX) { afterPageUser = pageRepository.getSingleRecord(user.getId(), moveAfterPageId); } // get all of the user's pages // the pageRepository returns an un-modifiable list // so we need to create a modifyable arraylist List<PageUser> thisUsersPages = new ArrayList<PageUser>(pageRepository.getPagesForUser(user.getId(), PageType.USER.toString())); // first remove it from the list if (!thisUsersPages.remove(movingPageUser)) { throw new RuntimeException("unable to find pageId " + pageId + " attempted to be moved for user " + user); } if (afterPageUser != null) { newIndex = thisUsersPages.indexOf(afterPageUser) + 1; } thisUsersPages.add(newIndex, movingPageUser); // persist the new page order updatePageRenderSequences(thisUsersPages); return movingPageUser.getPage(); }
@Transactional public Boolean addMemberToPage(String pageId, String userId){ Page page = getPage(pageId); PageUser pageUser = new PageUserImpl(); pageUser.setUserId(userService.getUserById(userId).getId()); pageUser.setPage(page); pageUser.setPageStatus(PageInvitationStatus.PENDING); List<PageUser> thisUsersPages = pageRepository.getPagesForUser(userService.getUserById(userId).getId(), PageType.USER.toString()); pageUser.setRenderSequence(new Long(thisUsersPages.size() + 1)); page.getMembers().add(pageUser); if(pageRepository.save(page) != null){ return Boolean.TRUE; }else{ return Boolean.FALSE; } }
page.setRegions(regions); page.setPageType(PageType.SUB_PAGE.toString());