public Resource get(final ResourceRequest request) { final DraftGallery gallery = ServiceLocator.getPersistance().getDraftItem(request.getSizeId()); if (gallery == null) { return null; } final Resource resource = ServiceLocator.getPersistance().getFormFileById(request.getId()); if (resource == null) { return null; } final ResourceSize resourceSize = ResourceSizeCustom.createByWidthHeight( gallery.getThumbnailWidth(), gallery.getThumbnailHeight()); return ResourceCustom.copyWithSize(resource, resourceSize); }
@RemoteProxy @Filter( type = SynchronizeForDwrFilter.class, params = {}) public class DeleteBlogPostService extends AbstractService { @SynchronizeByMethodParameter(entityClass = BlogPost.class, method = SynchronizeMethod.WRITE) @RemoteMethod public void execute(final int blogPostId) { final User user = new UsersManager().getLoginedUser(); final Integer loginedUserId = user != null ? user.getUserId() : null; final BlogPost blogPost = BlogRight.getBlogPostOnEdit(loginedUserId, blogPostId); persistanceTransaction.execute( new Runnable() { public void run() { persistance.removeBlogPost(blogPost); } }); } private final SessionStorage sessionStorage = ServiceLocator.getSessionStorage(); private final Persistance persistance = ServiceLocator.getPersistance(); private final PersistanceTransaction persistanceTransaction = ServiceLocator.getPersistanceTransaction(); }
@Test(expected = InvalidContactUsEmailException.class) public void executeWithoutEmail() throws ServletException, IOException { final Site site = TestUtil.createSite(); TestUtil.createUserAndUserOnSiteRightAndLogin(site, SiteAccessLevel.ADMINISTRATOR); final ContactUs contactUs = TestUtil.createContactUs(site); final CreateContactUsWidgetRequest request = new CreateContactUsWidgetRequest(); request.setContactUsName("name"); request.setDisplayHeader(true); request.setEmail(null); request.setHeader("header"); request.setContactUsId(contactUs.getId()); DraftFormItem item = new DraftFormItem(); item.setPosition(0); item.setRequired(true); item.setFormItemName(FormItemName.FIRST_NAME); ServiceLocator.getPersistance().putFormItem(item); List<DraftFormItem> items = new ArrayList<DraftFormItem>(); items.add(item); request.setFormItems(items); service.execute(request); }
@Test public void executeFromManageItems() throws ServletException, IOException { final Site site = TestUtil.createSite(); TestUtil.createUserAndUserOnSiteRightAndLogin(site, SiteAccessLevel.ADMINISTRATOR); final ContactUs contactUs = TestUtil.createContactUs(site); final CreateContactUsWidgetRequest request = new CreateContactUsWidgetRequest(); request.setContactUsName("name"); request.setDisplayHeader(true); request.setEmail("[email protected]"); request.setHeader("header"); request.setContactUsId(contactUs.getId()); DraftFormItem item = new DraftFormItem(); item.setPosition(0); item.setRequired(true); item.setFormItemName(FormItemName.FIRST_NAME); ServiceLocator.getPersistance().putFormItem(item); List<DraftFormItem> items = new ArrayList<DraftFormItem>(); items.add(item); request.setFormItems(items); final FunctionalWidgetInfo response = service.execute(request); Assert.assertNotNull(response); Assert.assertNull(response.getWidget()); Assert.assertEquals("name", contactUs.getName()); Assert.assertEquals("header", contactUs.getDescription()); Assert.assertTrue(contactUs.isShowDescription()); Assert.assertEquals(FormType.CONTACT_US, contactUs.getType()); }
@Test(expected = ContactUsNameNotUniqueException.class) public void executeWithNotUniqueName() throws ServletException, IOException { final Site site = TestUtil.createSite(); TestUtil.createUserAndUserOnSiteRightAndLogin(site, SiteAccessLevel.ADMINISTRATOR); PageManager pageVersion = TestUtil.createPageVersionAndPage(site); WidgetItem widget = TestUtil.createWidgetItem(); widget.setPosition(0); persistance.putWidget(widget); pageVersion.addWidget(widget); DraftContactUs contactUs = new DraftContactUs(); contactUs.setShowDescription(true); contactUs.setEmail("[email protected]"); contactUs.setDescription("header"); contactUs.setName("name2"); contactUs.setSiteId(site.getSiteId()); ServiceLocator.getPersistance().putContactUs(contactUs); DraftContactUs contactUs2 = new DraftContactUs(); contactUs2.setShowDescription(true); contactUs2.setEmail("[email protected]"); contactUs2.setDescription("header2"); contactUs2.setName("name"); contactUs2.setSiteId(site.getSiteId()); ServiceLocator.getPersistance().putContactUs(contactUs2); widget.setDraftItem(contactUs); final CreateContactUsWidgetRequest request = new CreateContactUsWidgetRequest(); request.setContactUsName("name"); request.setContactUsId(contactUs.getId()); request.setDisplayHeader(true); request.setEmail("[email protected]"); request.setHeader("header"); request.setWidgetId(widget.getWidgetId()); final List<DraftFormItem> formItems = TestUtil.createFormItems(FormItemName.FIRST_NAME, FormItemName.REGISTRATION_EMAIL); request.setFormItems(formItems); service.execute(request); }
/** @author Balakirev Anatoliy */ @RemoteProxy public class RestoreDefaultStructureService extends AbstractService { @RemoteMethod public UpdateMenuItemResponse execute(final Integer menuId) throws Exception { final UpdateMenuItemResponse response = new UpdateMenuItemResponse(); final DraftMenu menu = persistance.getMenuById(menuId); if (menu == null) { logger.warning( "Can`t create default structure for menu with id = " + menuId + ". Menu not found."); return response; } final Site site = persistance.getSite(menu.getSiteId()); if (site == null) { logger.warning( "Can`t create default structure for menu with id = " + menuId + ". Site not found. Site id " + "in this menu = " + menu.getSiteId()); return response; } final DraftMenu defaultMenu = site.getMenu(); if (defaultMenu == null) { logger.warning( "Can`t create default structure for menu with id = " + menuId + ". Default menu not found" + " for site with id = " + menu.getSiteId()); return response; } ServiceLocator.getPersistanceTransaction() .execute( new Runnable() { public void run() { MenuItemsManager.restoreDefaultStructure(defaultMenu, menu); } }); final MenuPagesHtmlTextCreator pagesHtmlTextCreator = new MenuPagesHtmlTextCreator( menu, new MenuPageCheckSometimes(menu), SiteShowOption.getDraftOption()); response.setTreeHtml(pagesHtmlTextCreator.getHtml()); if (!menu.getMenuItems().isEmpty()) { final int selectedMenuItemId = menu.getMenuItems().get(0).getId(); response.setInfoAboutSelectedItem(new GetInfoAboutItemService().execute(selectedMenuItemId)); response.setSelectedMenuItemId(selectedMenuItemId); } return response; } private final Persistance persistance = ServiceLocator.getPersistance(); private final Logger logger = Logger.getLogger(this.getClass().getName()); }
/** @author Artem Stasuk */ @RemoteProxy @Filter(type = SynchronizeForDwrFilter.class) public class ShowRequestContentService extends ServiceWithExecutePage { @SynchronizeByAllEntity(entityClass = Site.class) @RemoteMethod public String execute(final Integer targetSiteId) throws IOException, ServletException { userSitesUrl = configStorage.get().getUserSitesUrl(); final UserManager userManager = new UsersManager().getLogined(); if (targetSiteId != null) { targetSite = userManager.getRight().getSiteRight().getSiteForEdit(targetSiteId).getSite(); targetSites = Arrays.asList(targetSite); } else { targetSites = persistance.getSites(userManager.getUserId(), SiteAccessLevel.getUserAccessLevels()); Collections.sort(targetSites, new SiteByTitleComparator()); } sites = new ArrayList<Site>(); for (final Site site : persistance.getAllSites()) { if (site.getType() == SiteType.COMMON && site.getSitePaymentSettings().getSiteStatus() == SiteStatus.ACTIVE) { sites.add(site); } } Collections.sort(sites, new SiteByTitleComparator()); return executePage("/site/showRequestContent.jsp"); } public List<Site> getSites() { return sites; } public Site getTargetSite() { return targetSite; } public List<Site> getTargetSites() { return targetSites; } public String getUserSitesUrl() { return userSitesUrl; } private List<Site> sites; private List<Site> targetSites; private Site targetSite; private String userSitesUrl; private final Persistance persistance = ServiceLocator.getPersistance(); private final ConfigStorage configStorage = ServiceLocator.getConfigStorage(); }
public FormData(final FilledForm filledForm) { description = filledForm.getFormDescription(); final DraftForm form = ServiceLocator.getPersistance().getFormById(filledForm.getFormId()); formId = form.getFormId(); formName = form.getName(); showDescription = form.isShowDescription(); termsAndConditions = form instanceof DraftRegistrationForm ? ((DraftRegistrationForm) form).getTermsAndConditions() : null; requireTermsAndConditions = form instanceof DraftRegistrationForm && ((DraftRegistrationForm) form).isRequireTermsAndConditions(); updateChildSiteRegistrationFields(form); this.formItems = FormItemsManager.createFormItemsByFilledForm(filledForm, form); }
/** @author Artem Stasuk, dmitry.solomadin */ @RemoteProxy public class SaveScriptService extends AbstractService { @RemoteMethod public FunctionalWidgetInfo execute(final SaveScriptRequest request) throws Exception { final UserManager userManager = new UsersManager().getLogined(); final WidgetItem widget; if (request.getWidgetId() != null) { widget = (WidgetItem) userManager .getRight() .getSiteRight() .getWidgetForEditInPresentationalService(request.getWidgetId()); } else { widget = null; } persistanceTransaction.execute( new Runnable() { @Override public void run() { final DraftScript draftScript = persistance.getDraftItem(request.getScriptItemId()); if (draftScript == null || draftScript.getSiteId() <= 0) { throw new ScriptNotFoundException( "Cannot find script item by Id=" + request.getScriptItemId()); } draftScript.setText(request.getText()); draftScript.setName(request.getName()); draftScript.setDescription(request.getDescription()); draftScript.setShowDescription(request.isShowDescription()); } }); return new GetFunctionalWidgetsService().createFunctionalWidgetInfo(widget, "widget", true); } private final PersistanceTransaction persistanceTransaction = ServiceLocator.getPersistanceTransaction(); private Persistance persistance = ServiceLocator.getPersistance(); }
public static void execute() { for (final Site site : ServiceLocator.getPersistance().getSitesWithNotEmptyIncomeSettings()) { if (site.getIncomeSettings() != null && site.getIncomeSettings().getSum() > 0) { final PayPalPaymentRequest request = new PayPalPaymentRequest(); request.setEmail(site.getIncomeSettings().getPaypalAddress()); request.setSum(site.getIncomeSettings().getSum()); request.setNote(StringUtil.getEmptyOrString(site.getIncomeSettings().getPaymentDetails())); request.setSiteId(site.getId()); try { // Here should be default PayPal because we must send money from our system to child // site`s owner, // which decided to use our payment system instead of their own one. ((PayPal) PaymentSystem.newInstance(PaymentMethod.PAYPAL)) .massPayment(Arrays.asList(request), PaymentReason.AUTO_PAYMENT); new SiteManager(site).clearIncomeSettings(); } catch (Exception exception) { Logger.getLogger(IncomeSettingsOwnerMoneySender.class.getName()) .log(Level.SEVERE, "Can`t send money for parent site.", exception); } } } }
@Test public void execute() throws Exception { TestUtil.createUserAndLogin(); final Site site = TestUtil.createSite(); final PageManager pageVersion = TestUtil.createPageVersionSiteUser(); Widget widgetCustomForm = TestUtil.createCustomFormWidget(pageVersion); final DraftCustomForm customForm = TestUtil.createCustomForm(site); final List<FilledFormItem> filledFormItems = TestUtil.createFilledFormItems(FormItemName.FIRST_NAME, FormItemName.LAST_NAME); filledFormItems.get(0).setValue("FN1"); filledFormItems.get(1).setValue("LN1"); final SubmitCustomFormRequest request = new SubmitCustomFormRequest(); request.setFormId(customForm.getFormId()); request.setWidgetId(widgetCustomForm.getWidgetId()); request.setFilledFormItems(new ArrayList<FilledFormItem>()); request.setVerificationCode("aaaaaa"); request.setFilledFormItems(filledFormItems); ServiceLocator.getSessionStorage() .setNoBotCode(null, "customForm" + widgetCustomForm.getWidgetId(), "aaaaaa"); final SubmitCustomFormResponse response = service.execute(request); Assert.assertNull(response.getNextPageHtml()); final FilledForm filledCustomForm = ServiceLocator.getPersistance().getFilledFormById(response.getFilledFormId()); Assert.assertNotNull(filledCustomForm); Assert.assertEquals( filledFormItems.get(0).getValues(), filledCustomForm.getFilledFormItems().get(0).getValues()); Assert.assertEquals( filledFormItems.get(1).getValues(), filledCustomForm.getFilledFormItems().get(1).getValues()); }
/** @author Balakirev Anatoliy */ @UrlBinding("/uploadFormVideoFiles.action") public class UploadFormVideoFilesAction extends Action implements UploadedFiles { @DefaultHandler public Resolution upload() { try { if (fileData == null || filledFormId < 1) { throw new UnsupportedOperationException(); } final FilledForm filledForm = persistance.getFilledFormById(filledFormId); final DraftForm form = persistance.getFormById(filledForm.getFormId()); final FilledFormItem filledFormItem = FilledFormManager.getFilledFormItemByItemPosition(filledForm, position); final FormVideo formVideo = getFormVideoOrCreateNew(filledFormItem); final int siteId = form.getSiteId(); final SourceVideoFileCreator sourceVideoFileCreator = new SourceVideoFileCreator( siteId, FileNameUtil.createExtension(fileData.getFileName()), fileData.getFileName(), fileData.getInputStream()); final Video video = sourceVideoFileCreator.execute(); persistanceTransaction.execute( new PersistanceTransactionContext<Void>() { public Void execute() { if (formItemName == FormItemName.VIDEO_FILE_UPLOAD) { try { video.setFilledFormId(filledForm.getFilledFormId()); video.setFilledFormItemId(filledFormItem.getItemId()); formVideo.setVideoId(video.getVideoId()); FlvVideoManager.getFlvVideoOrCreateNew( video.getVideoId(), video.getSourceWidth(), video.getSourceHeight(), formVideo.getQuality(), video.getSiteId()); } catch (Exception exception) { logger.log(Level.SEVERE, "Can`t create video file!", exception); } } else if (formItemName == FormItemName.IMAGE_FILE_UPLOAD) { formVideo.setImageId((new CreateFormFileUtil().createFormFile(fileData, siteId))); } return null; } }); ServiceLocator.getPersistanceTransaction() .execute( new Runnable() { public void run() { GalleriesManager.updateVideoFilesForGalleriesThatUseCurentForm( filledForm.getFormId()); } }); } catch (Exception exception1) { try { this.getContext().getResponse().getOutputStream().println("-200"); } catch (Exception exception2) { logger.log(Level.SEVERE, "Error while writing file", exception2); } logger.log(Level.SEVERE, "Error while writing file", exception1); return resolutionCreator.forwardToUrl("/SWFUpload/error.jsp"); } return resolutionCreator.forwardToUrl("/SWFUpload/success.jsp"); } private FormVideo getFormVideoOrCreateNew(final FilledFormItem filledFormItem) { final FormVideo formVideo = persistance.getFormVideoById(FilledFormItemManager.getIntValue(filledFormItem)); if (formVideo == null) { return persistanceTransaction.execute( new PersistanceTransactionContext<FormVideo>() { public FormVideo execute() { final FormVideo newFormVideo = new FormVideo(); persistance.putFormVideo(newFormVideo); filledFormItem.setValue("" + newFormVideo.getFormVideoId()); return newFormVideo; } }); } else { return formVideo; } } public FormItemName getFormItemName() { return formItemName; } public void setFormItemName(FormItemName formItemName) { this.formItemName = formItemName; } public int getFilledFormId() { return filledFormId; } public void setFilledFormId(int filledFormId) { this.filledFormId = filledFormId; } public FileBean getFileData() { return fileData; } public void setFileData(FileBean fileData) { this.fileData = fileData; } public int getPosition() { return position; } public void setPosition(int position) { this.position = position; } private FormItemName formItemName; private int filledFormId; private int position; private final Persistance persistance = ServiceLocator.getPersistance(); private final ResolutionCreator resolutionCreator = ServiceLocator.getResolutionCreator(); private final PersistanceTransaction persistanceTransaction = ServiceLocator.getPersistanceTransaction(); private static final Logger logger = Logger.getLogger(UploadFormFilesAction.class.getName()); private FileBean fileData; public String getResourceUrl() { return null; // To change body of implemented methods use File | Settings | File Templates. } public int getResourceId() { return 0; // To change body of implemented methods use File | Settings | File Templates. } public ResourceType getResourceType() { return null; // To change body of implemented methods use File | Settings | File Templates. } }
@RemoteMethod public String goToPaypalCSR(final PaypalRequest request) throws Exception { final PaymentReason paymentReason = PaymentReason.CHILD_SITE_CREATION; // Modifying redirect url // Check on hash presence. We sould remove all old hash. if (request.getRedirectToUrl().contains("#")) { request.setRedirectToUrl( request.getRedirectToUrl().substring(0, request.getRedirectToUrl().indexOf("#"))); } if (request.getPageBreakIndex() > request.getTotalPageBreaks()) { // If payment page is last page then update return url with setting that will show message // about registration completion. request.setRedirectToUrl( request.getRedirectToUrl() + "#showSuccessMessageLastPage" + request.getWidgetId()); } else { // Upadting return from paypal url with correct form page. request.setRedirectToUrl( request.getRedirectToUrl() + (request.getRedirectToUrl().contains("?") ? "&" : "?") + "pageBreaksToPass="******"&filledFormToUpdateId=" + request.getFilledFormToUpdateId() + "&childSiteUserId=" + request.getChildSiteUserId() + "&settingsId=" + request.getSettingsId() + "#showSuccessMessage" + request.getWidgetId()); } final PaypalPaymentInfoRequest paymentInfoRequest = new PaypalPaymentInfoRequest( request.getOwnerId(), PaymentSettingsOwnerType.CHILD_SITE_SETTINGS, request.getChargeType(), request.getRedirectToUrl(), createRedirectOnErrorUrl(request), paymentReason, request.getChildSiteUserId()); final int requestId = ServiceLocator.getPaypalPaymentInfoRequestStorage().put(paymentInfoRequest); final ChildSiteSettings childSiteSettings = ServiceLocator.getPersistance().getChildSiteSettingsById(request.getSettingsId()); // Here we should check, which paypal we should use: default Web-Deva`s or own. Tolik final PayPal payPal = (PayPal) new PaymentSettingsOwnerManager(childSiteSettings).getAppropriatePaymentSystem(); final String networkName = childSiteSettings.getChildSiteRegistration().getName(); final String applicationUrl = "http://" + ServiceLocator.getConfigStorage().get().getApplicationUrl(); final String token = payPal.setCustomerBillingAgreement( applicationUrl + "/account/createProfile.action?requestId=" + requestId, request.getRedirectToUrl() + (request.getRedirectToUrl().contains("?") ? "&" : "?") + "pageBreaksToPass="******"&filledFormToUpdateId=" + request.getFilledFormToUpdateId(), (networkName + " fee for child site"), paymentReason, null, request.getOwnerId(), request.getChildSiteUserId()); return (payPal.getPaypalLink() + token); }
@Test public void testExecute_WithFirstState() throws Exception { ServiceLocator.getConfigStorage().get().setUserSitesUrl("web-deva.com"); User user = TestUtil.createUser(); user.setActiveted(null); Site parentSite = TestUtil.createSite(); DraftChildSiteRegistration registration = TestUtil.createChildSiteRegistration(parentSite); ChildSiteSettings settings = TestUtil.createChildSiteSettings(registration, parentSite); settings.setCreatedDate(new Date()); settings.setUserId(user.getUserId()); settings.setConfirmCode("confirm"); settings.setAccessLevel(SiteAccessLevel.ADMINISTRATOR); FilledForm filledForm = TestUtil.createFilledForm(registration.getFormId()); FilledFormItem filledFormItemDomainName = TestUtil.createFilledFormItem(FormItemName.YOUR_OWN_DOMAIN_NAME); List<String> values = Arrays.asList("domainName"); filledFormItemDomainName.setValues(values); FilledFormItem filledFormItemSiteName = TestUtil.createFilledFormItem(FormItemName.YOUR_PAGE_SITE_NAME); List<String> siteNameValues = Arrays.asList("siteName"); filledFormItemSiteName.setValues(siteNameValues); filledForm.setFilledFormItems(Arrays.asList(filledFormItemDomainName, filledFormItemSiteName)); settings.setFilledFormId(filledForm.getFilledFormId()); action.setSettingsId(settings.getChildSiteSettingsId()); action.setConfirmCode("confirm"); DraftChildSiteRegistration childSiteRegistration = TestUtil.createChildSiteRegistration("name", "comment"); Site blueprint = TestUtil.createBlueprint(); childSiteRegistration.setBlueprintsId(Arrays.asList(blueprint.getSiteId())); settings.setRequiredToUseSiteBlueprint(true); final SitePaymentSettings sitePaymentSettings = new SitePaymentSettings(); sitePaymentSettings.setSiteStatus(SiteStatus.ACTIVE); settings.setSitePaymentSettings(sitePaymentSettings); settings.setChildSiteRegistration(childSiteRegistration); Assert.assertNull(user.getActiveted()); Assert.assertNull(new UsersManager().getLoginedUser()); Assert.assertNull(ServiceLocator.getPersistance().getSiteBySubDomain("domainname")); ForwardResolution resolutionMock = (ForwardResolution) action.show(); Assert.assertNotNull(new UsersManager().getLoginedUser()); Assert.assertEquals(user, new UsersManager().getLoginedUser()); Assert.assertEquals( "/account/registration/childSiteRigistrationConfirmationFirstState.jsp", resolutionMock.getPath()); Assert.assertNotNull(user.getActiveted()); Assert.assertNotNull(new UsersManager().getLoginedUser()); Assert.assertEquals(user, new UsersManager().getLoginedUser()); Site site = ServiceLocator.getPersistance().getSiteBySubDomain("domainname"); Assert.assertNotNull(site); Assert.assertNotNull(new UserRightManager(user).toSite(site).getSiteAccessType()); Assert.assertEquals( settings.getAccessLevel(), new UserRightManager(user).toSite(site).getSiteAccessType()); Assert.assertEquals("domainname", site.getSubDomain()); Assert.assertEquals("http://domainname.web-deva.com", action.getUrl()); Assert.assertNotNull(action.getTellFriendHtml()); Assert.assertEquals(2, site.getPages().size()); Assert.assertEquals("siteName", site.getTitle()); Assert.assertEquals(blueprint, site.getBlueprintParent()); }
@Test public void executeWithPageBreaksFromAddRecord() throws Exception { TestUtil.createUserAndLogin(); final Site site = TestUtil.createSite(); final DraftCustomForm customForm = TestUtil.createCustomForm(site); final List<DraftFormItem> formItems = new ArrayList<DraftFormItem>(); formItems.add(TestUtil.createFormItem(FormItemName.FIRST_NAME, 0)); formItems.add(TestUtil.createFormItem(FormItemName.PAGE_BREAK, 1)); formItems.add(TestUtil.createFormItem(FormItemName.LAST_NAME, 2)); customForm.setFormItems(formItems); // FIRST PAGE List<FilledFormItem> filledFormItems = TestUtil.createFilledFormItems(FormItemName.FIRST_NAME); filledFormItems.get(0).setValue("FN1"); SubmitCustomFormRequest request = new SubmitCustomFormRequest(); request.setFormId(customForm.getFormId()); request.setWidgetId(0); request.setFilledFormItems(new ArrayList<FilledFormItem>()); request.setRequestNextPage(true); request.setPageBreaksToPass(1); request.setVerificationCode("aaaaaa"); request.setFilledFormItems(filledFormItems); request.setShowFromAddRecord(true); SubmitCustomFormResponse response = service.execute(request); Assert.assertEquals( "/site/showCustomForm.action?formId=" + request.getFormId() + "&showFromAddRecord=true" + "&pageBreaksToPass="******"&filledFormToUpdateId=" + response.getFilledFormId(), response.getNextPageHtml()); FilledForm filledContactUsForm = ServiceLocator.getPersistance().getFilledFormById(response.getFilledFormId()); Assert.assertNotNull(filledContactUsForm); Assert.assertEquals( filledFormItems.get(0).getValues(), filledContactUsForm.getFilledFormItems().get(0).getValues()); // SECOND PAGE filledFormItems = TestUtil.createFilledFormItems(FormItemName.LAST_NAME); filledFormItems.get(0).setValue("LN1"); request = new SubmitCustomFormRequest(); request.setFormId(customForm.getFormId()); request.setWidgetId(0); request.setFilledFormItems(new ArrayList<FilledFormItem>()); request.setShowFromAddRecord(true); request.setRequestNextPage(true); request.setFilledFormId(response.getFilledFormId()); request.setPageBreaksToPass(2); request.setFilledFormItems(filledFormItems); response = service.execute(request); Assert.assertNull(response.getNextPageHtml()); filledContactUsForm = ServiceLocator.getPersistance().getFilledFormById(response.getFilledFormId()); Assert.assertEquals( filledFormItems.get(0).getValues(), filledContactUsForm.getFilledFormItems().get(1).getValues()); }
/** @author Artem Stasuk */ public class FormFiltersManager { public FormFiltersManager(final UserManager userManager) { this.userManager = userManager; } public FormFilterManager save(final FormFilterEdit edit) { return persistanceTransaction.execute( new PersistanceTransactionContext<FormFilterManager>() { @Override public FormFilterManager execute() { final DraftFormFilter originalFormFilter = persistance.getFormFilterByNameAndFormId(edit.getName(), edit.getFormId()); if (originalFormFilter != null && edit.getId() == null) { throw new FormFilterNotUniqueNameException("Not unique name " + edit.getName()); } else if (originalFormFilter != null && originalFormFilter.getFormFilterId() != edit.getId()) { throw new FormFilterNotUniqueNameException("Not unique name " + edit.getName()); } final DraftFormFilter formFilter; final UserRightManager userRightManager = userManager.getRight(); if (edit.getId() == null) { final DraftForm form = persistance.getFormById(edit.getFormId()); if (userRightManager.toSiteItem(form) != SiteOnItemRightType.EDIT) { throw new FormNotFoundException("Can't find form " + edit.getFormId()); } formFilter = new DraftFormFilter(); formFilter.setName(edit.getName()); form.addFilter(formFilter); persistance.putFormFilter(formFilter); } else { formFilter = persistance.getFormFilterById(edit.getId()); if (formFilter == null || userRightManager.toSiteItem(formFilter.getForm()) != SiteOnItemRightType.EDIT) { throw new FormFilterNotFoundException("Can't find " + edit.getId()); } formFilter.setName(edit.getName()); } final List<DraftFormFilterRule> rules = new ArrayList<DraftFormFilterRule>(formFilter.getRules()); for (final DraftFormFilterRule rule : rules) { persistance.removeFormFilterRule(rule); } for (final FormFilterRuleEdit ruleEdit : edit.getRules()) { final DraftFormFilterRule rule = new DraftFormFilterRule(); rule.setInclude(ruleEdit.isInclude()); rule.setCriteria(ruleEdit.getCriteria()); rule.setFormItemId(ruleEdit.getFormItemId()); formFilter.addRule(rule); persistance.putFormFilterRule(rule); } return new FormFilterManager(formFilter); } }); } public List<FormFilterManager> getFilters() { final List<DraftFormFilter> filters = persistance.getFormFiltersByUserId(userManager.getUserId()); final List<FormFilterManager> filterManagers = new ArrayList<FormFilterManager>(filters.size()); for (final DraftFormFilter filter : filters) { filterManagers.add(new FormFilterManager(filter)); } return filterManagers; } public FormFilterManager get(final Integer id) { if (id != null) { final DraftFormFilter formFilter = persistance.getFormFilterById(id); if (formFilter != null) { return new FormFilterManager(formFilter); } } throw new FormFilterNotFoundException("Can't find " + id); } public String getDefaultName(final int formId) { final Set<String> usedNames = new HashSet<String>(); for (final DraftFormFilter filter : persistance.getFormById(formId).getDraftFilters()) { usedNames.add(filter.getName()); } int number = 1; final String name = "Form Filter"; while (true) { if (!usedNames.contains(name + number)) { return name + number; } if (number >= Integer.MAX_VALUE) { number = (int) Math.round(Math.random()); } else { number++; } } } public void delete(final int id) { final DraftFormFilter formFilter = persistance.getFormFilterById(id); final UserRightManager userRightManager = userManager.getRight(); if (formFilter != null && userRightManager.toSiteItem(formFilter.getForm()) == SiteOnItemRightType.EDIT) { persistanceTransaction.execute( new Runnable() { @Override public void run() { persistance.removeFormFilter(formFilter); formFilter.getDraftForm().removeFilter(formFilter); } }); } } private final UserManager userManager; private final Persistance persistance = ServiceLocator.getPersistance(); private final PersistanceTransaction persistanceTransaction = ServiceLocator.getPersistanceTransaction(); }
@RemoteProxy public class ShowVisitorLoginService extends ServiceWithExecutePage { /** * @param widgetId - selected widget id * @param force - if this parameter true login show always. If false login show only if visitor * not logined. * @return - html with login controls * @throws IOException * @throws ServletException */ @RemoteMethod @SynchronizeByMethodParameter(entityClass = Widget.class) public String execute(final int widgetId, final boolean force) throws IOException, ServletException { this.widgetId = widgetId; widget = persistance.getWidget(widgetId); if (widget == null) { throw new WidgetNotFoundException("Cannot find widget by id " + widgetId); } final Cookie[] cookies = getContext().getHttpServletRequest().getCookies(); final Site site = widget.getSite(); if (cookies != null) { final Cookie crypted = ActionUtil.findCookie(cookies, "sh_cpt" + site.getSiteId()); final Cookie visitorId = ActionUtil.findCookie(cookies, "sh_vid" + site.getSiteId()); if (crypted != null && visitorId != null && !force) { // Getting our user from cookie user = persistance.getUserById(Integer.parseInt(visitorId.getValue())); // Check for rights. if (user == null || persistance.getUserOnSiteRightByUserAndSiteId(user.getUserId(), site.getSiteId()) == null) { return executePage("/site/render/widgetLogin.jsp"); } // Checking if user md5(login + password) matches the same form cookie if (MD5.crypt(user.getEmail() + user.getPassword()).equals(crypted.getValue())) { // If so - login our user new UsersManager().login(user.getUserId()); } } } user = new UsersManager().getLoginedUser(); if (user != null && !force) { final boolean isVisitorLogined = user != null && new UserRightManager(user).toSite(site) != null; if (isVisitorLogined) { return executePage("/site/render/visitorLogined.jsp"); } else { return executePage("/site/render/widgetLogin.jsp"); } } return executePage("/site/render/widgetLogin.jsp"); } @RemoteMethod @SynchronizeByMethodParameter(entityClass = Widget.class) public String executeForRegistration(final int widgetId) throws IOException, ServletException { returnToRegistration = true; return execute(widgetId, false); } @RemoteMethod @SynchronizeByMethodParameter(entityClass = Widget.class) public String executeForChildSiteRegistration(final int widgetId) throws IOException, ServletException { returnToChildSiteRegistration = true; return execute(widgetId, true); } @RemoteMethod @SynchronizeByMethodParameter(entityClass = Widget.class) public String executeForManageVotes(final int widgetId, final int formId) throws IOException, ServletException { returnToManageVotes = true; this.formId = formId; return execute(widgetId, true); } @RemoteMethod @SynchronizeByMethodParameter(entityClass = Widget.class) public String executeForGalleryWithForm( final int widgetId, final int formId, final Integer shouldBeRegisteredFromRightFormId) throws IOException, ServletException { returnToGallery = true; this.formId = formId; this.shouldBeRegisteredFromRightFormId = shouldBeRegisteredFromRightFormId; return execute(widgetId, true); } @RemoteMethod @SynchronizeByMethodParameter(entityClass = Widget.class) public String executeForShoppingCart(final int widgetId, final int formId) throws IOException, ServletException { returnToShoppingCart = true; this.formId = formId; return execute(widgetId, true); } @RemoteMethod @SynchronizeByMethodParameter(entityClass = Widget.class) public String executeForGallery(final int widgetId) throws IOException, ServletException { returnToGallery = true; return execute(widgetId, true); } @RemoteMethod @SynchronizeByMethodParameter(entityClass = Widget.class) public String executeForForum(final int widgetId) throws IOException, ServletException { returnToForum = true; return execute(widgetId, true); } @RemoteMethod @SynchronizeByMethodParameter(entityClass = Widget.class) public String executeForBlog(final int widgetId) throws IOException, ServletException { returnToBlog = true; return execute(widgetId, true); } public User getVisitor() { return user; } public int getWidgetId() { return widgetId; } public void setWidgetId(int widgetId) { this.widgetId = widgetId; } public void setVisitor(User user) { this.user = user; } public Widget getWidget() { return widget; } public boolean isReturnToRegistration() { return returnToRegistration; } public boolean isReturnToChildSiteRegistration() { return returnToChildSiteRegistration; } public boolean isReturnToManageVotes() { return returnToManageVotes; } public boolean isReturnToGallery() { return returnToGallery; } public Integer getFormId() { return formId; } public boolean isReturnToForum() { return returnToForum; } public boolean isReturnToBlog() { return returnToBlog; } public Integer getShouldBeRegisteredFromRightFormId() { return shouldBeRegisteredFromRightFormId; } public boolean isReturnToShoppingCart() { return returnToShoppingCart; } private final Persistance persistance = ServiceLocator.getPersistance(); private final SessionStorage sessionStorage = ServiceLocator.getSessionStorage(); private int widgetId; private Integer formId; private Integer shouldBeRegisteredFromRightFormId; private User user; private Widget widget; private boolean returnToRegistration; private boolean returnToChildSiteRegistration; private boolean returnToManageVotes; private boolean returnToGallery; private boolean returnToForum; private boolean returnToBlog; private boolean returnToShoppingCart; }
@RemoteMethod public GoToPaypalResponse goToPaypal(final PaypalRequest request) throws Exception { final PaymentReason paymentReason = PaymentReason.SHROGGLE_MONTHLY_PAYMENT; final Site site = ServiceLocator.getPersistance().getSite(request.getOwnerId()); if (site == null) { throw new PaymentException( "Cannot pay for null site. Site by Id=" + request.getOwnerId() + " not found."); } final GoToPaypalResponse response = new GoToPaypalResponse(); if (site.getSitePaymentSettings().getSiteStatus() == SiteStatus.ACTIVE && site.getSitePaymentSettings().getChargeType() == ChargeType.SITE_ONE_TIME_FEE) { response.setActivatedWithOneTimeFee(true); return response; } final String redirectOnErrorUrl = "/account/updatePaymentInfo.action?showPaypalError=true"; final PaypalPaymentInfoRequest paymentInfoRequest = new PaypalPaymentInfoRequest( request.getOwnerId(), PaymentSettingsOwnerType.SITE, request.getChargeType(), request.getRedirectToUrl(), redirectOnErrorUrl, paymentReason, null); final int requestId = ServiceLocator.getPaypalPaymentInfoRequestStorage().put(paymentInfoRequest); final String description; if (request.getChargeType().getPaymentPeriod().equals(PaymentPeriod.MONTH)) { description = "Monthly cost of " + site.getTitle() + " site."; } else { description = "Annual cost of " + site.getTitle() + " site."; } // Here we should check, which paypal we should use: default Web-Deva`s or own. Tolik final PayPal payPal = (PayPal) new PaymentSettingsOwnerManager(site).getAppropriatePaymentSystem(); final String applicationUrl = "http://" + ServiceLocator.getConfigStorage().get().getApplicationUrl(); final String token = payPal.setCustomerBillingAgreement( applicationUrl + "/account/createProfile.action?requestId=" + requestId, applicationUrl + "/account/updatePaymentInfo.action", description, paymentReason, site.getSiteId(), null, null); response.setPaypalLink(payPal.getPaypalLink() + token); if (site.getSitePaymentSettings().getSiteStatus() == SiteStatus.ACTIVE) { if (site.getSitePaymentSettings().getPaymentMethod() == PaymentMethod.AUTHORIZE_NET) { response.setJavienActivated(true); } else if (payPal.getProfileStatus(site.getSitePaymentSettings().getRecurringPaymentId()) == PayPalRecurringProfileStatus.ACTIVE) { response.setActiveProfile(true); } } return response; }
@RunWith(value = TestRunnerWithMockServices.class) public class CreateContactUsServiceTest { @Before public void before() { MockWebContext mockWebContext = (MockWebContext) service.getContext(); mockWebContext.setHttpServletRequest(new MockHttpServletRequest("", "")); } @Test public void executeFromSiteEditPage() throws ServletException, IOException { final Site site = TestUtil.createSite(); TestUtil.createUserAndUserOnSiteRightAndLogin(site, SiteAccessLevel.ADMINISTRATOR); final PageManager pageVersion = TestUtil.createPageVersionAndPage(site); final ContactUs contactUs = TestUtil.createContactUs(site); WidgetItem widget = TestUtil.createTextWidget(); widget.setPosition(0); persistance.putWidget(widget); pageVersion.addWidget(widget); final CreateContactUsWidgetRequest request = new CreateContactUsWidgetRequest(); request.setContactUsName("name"); request.setDisplayHeader(true); request.setEmail("[email protected]"); request.setHeader("header"); request.setWidgetId(widget.getWidgetId()); request.setContactUsId(contactUs.getId()); DraftFormItem item = new DraftFormItem(); item.setPosition(0); item.setRequired(true); item.setFormItemName(FormItemName.FIRST_NAME); ServiceLocator.getPersistance().putFormItem(item); List<DraftFormItem> items = new ArrayList<DraftFormItem>(); items.add(item); request.setFormItems(items); final FunctionalWidgetInfo response = service.execute(request); Assert.assertNotNull(response); Assert.assertEquals(widget.getWidgetId(), response.getWidget().getWidgetId()); Assert.assertEquals("name", contactUs.getName()); Assert.assertEquals("header", contactUs.getDescription()); Assert.assertTrue(contactUs.isShowDescription()); Assert.assertEquals(FormType.CONTACT_US, contactUs.getType()); } @Test public void executeFromManageItems() throws ServletException, IOException { final Site site = TestUtil.createSite(); TestUtil.createUserAndUserOnSiteRightAndLogin(site, SiteAccessLevel.ADMINISTRATOR); final ContactUs contactUs = TestUtil.createContactUs(site); final CreateContactUsWidgetRequest request = new CreateContactUsWidgetRequest(); request.setContactUsName("name"); request.setDisplayHeader(true); request.setEmail("[email protected]"); request.setHeader("header"); request.setContactUsId(contactUs.getId()); DraftFormItem item = new DraftFormItem(); item.setPosition(0); item.setRequired(true); item.setFormItemName(FormItemName.FIRST_NAME); ServiceLocator.getPersistance().putFormItem(item); List<DraftFormItem> items = new ArrayList<DraftFormItem>(); items.add(item); request.setFormItems(items); final FunctionalWidgetInfo response = service.execute(request); Assert.assertNotNull(response); Assert.assertNull(response.getWidget()); Assert.assertEquals("name", contactUs.getName()); Assert.assertEquals("header", contactUs.getDescription()); Assert.assertTrue(contactUs.isShowDescription()); Assert.assertEquals(FormType.CONTACT_US, contactUs.getType()); } @Test(expected = InvalidContactUsEmailException.class) public void executeWithBadEmail() throws ServletException, IOException { final Site site = TestUtil.createSite(); TestUtil.createUserAndUserOnSiteRightAndLogin(site, SiteAccessLevel.ADMINISTRATOR); final ContactUs contactUs = TestUtil.createContactUs(site); final CreateContactUsWidgetRequest request = new CreateContactUsWidgetRequest(); request.setContactUsName("name"); request.setDisplayHeader(true); request.setEmail("a"); request.setHeader("header"); request.setContactUsId(contactUs.getId()); DraftFormItem item = new DraftFormItem(); item.setPosition(0); item.setRequired(true); item.setFormItemName(FormItemName.FIRST_NAME); ServiceLocator.getPersistance().putFormItem(item); List<DraftFormItem> items = new ArrayList<DraftFormItem>(); items.add(item); request.setFormItems(items); service.execute(request); } @Test(expected = InvalidContactUsEmailException.class) public void executeWithoutEmail() throws ServletException, IOException { final Site site = TestUtil.createSite(); TestUtil.createUserAndUserOnSiteRightAndLogin(site, SiteAccessLevel.ADMINISTRATOR); final ContactUs contactUs = TestUtil.createContactUs(site); final CreateContactUsWidgetRequest request = new CreateContactUsWidgetRequest(); request.setContactUsName("name"); request.setDisplayHeader(true); request.setEmail(null); request.setHeader("header"); request.setContactUsId(contactUs.getId()); DraftFormItem item = new DraftFormItem(); item.setPosition(0); item.setRequired(true); item.setFormItemName(FormItemName.FIRST_NAME); ServiceLocator.getPersistance().putFormItem(item); List<DraftFormItem> items = new ArrayList<DraftFormItem>(); items.add(item); request.setFormItems(items); service.execute(request); } @Test(expected = PageBreakBeforeRequiredFieldsException.class) public void executeWithPageBreakBeforeMandatory() throws ServletException, IOException { final Site site = TestUtil.createSite(); TestUtil.createUserAndUserOnSiteRightAndLogin(site, SiteAccessLevel.ADMINISTRATOR); final PageManager pageVersion = TestUtil.createPageVersionAndPage(site); WidgetItem widget = TestUtil.createWidgetItem(); widget.setPosition(0); persistance.putWidget(widget); pageVersion.addWidget(widget); final CreateContactUsWidgetRequest request = new CreateContactUsWidgetRequest(); request.setContactUsName("name"); request.setDisplayHeader(true); request.setEmail("*****@*****.**"); request.setHeader("header"); request.setWidgetId(widget.getWidgetId()); final List<DraftFormItem> formItems = TestUtil.createFormItems( FormItemName.FIRST_NAME, FormItemName.PAGE_BREAK, FormItemName.REGISTRATION_EMAIL); request.setFormItems(formItems); service.execute(request); } @Test(expected = ContactUsNameNotUniqueException.class) public void executeWithNotUniqueName() throws ServletException, IOException { final Site site = TestUtil.createSite(); TestUtil.createUserAndUserOnSiteRightAndLogin(site, SiteAccessLevel.ADMINISTRATOR); PageManager pageVersion = TestUtil.createPageVersionAndPage(site); WidgetItem widget = TestUtil.createWidgetItem(); widget.setPosition(0); persistance.putWidget(widget); pageVersion.addWidget(widget); DraftContactUs contactUs = new DraftContactUs(); contactUs.setShowDescription(true); contactUs.setEmail("[email protected]"); contactUs.setDescription("header"); contactUs.setName("name2"); contactUs.setSiteId(site.getSiteId()); ServiceLocator.getPersistance().putContactUs(contactUs); DraftContactUs contactUs2 = new DraftContactUs(); contactUs2.setShowDescription(true); contactUs2.setEmail("[email protected]"); contactUs2.setDescription("header2"); contactUs2.setName("name"); contactUs2.setSiteId(site.getSiteId()); ServiceLocator.getPersistance().putContactUs(contactUs2); widget.setDraftItem(contactUs); final CreateContactUsWidgetRequest request = new CreateContactUsWidgetRequest(); request.setContactUsName("name"); request.setContactUsId(contactUs.getId()); request.setDisplayHeader(true); request.setEmail("[email protected]"); request.setHeader("header"); request.setWidgetId(widget.getWidgetId()); final List<DraftFormItem> formItems = TestUtil.createFormItems(FormItemName.FIRST_NAME, FormItemName.REGISTRATION_EMAIL); request.setFormItems(formItems); service.execute(request); } @Test(expected = ContactUsNotFoundException.class) public void executeWithNotFoundContactUs() throws ServletException, IOException { final Site site = TestUtil.createSite(); TestUtil.createUserAndUserOnSiteRightAndLogin(site, SiteAccessLevel.ADMINISTRATOR); PageManager pageVersion = TestUtil.createPageVersionAndPage(site); WidgetItem widget = TestUtil.createWidgetItem(); widget.setPosition(0); persistance.putWidget(widget); pageVersion.addWidget(widget); final CreateContactUsWidgetRequest request = new CreateContactUsWidgetRequest(); request.setContactUsName("name"); request.setContactUsId(-1); request.setDisplayHeader(true); request.setEmail("[email protected]"); request.setHeader("header"); final List<DraftFormItem> formItems = TestUtil.createFormItems(FormItemName.FIRST_NAME, FormItemName.REGISTRATION_EMAIL); request.setFormItems(formItems); service.execute(request); } @Test(expected = UserNotLoginedException.class) public void executeWithoutLogin() throws ServletException, IOException { final CreateContactUsWidgetRequest request = new CreateContactUsWidgetRequest(); service.execute(request); } @Test(expected = WidgetNotFoundException.class) public void executeWithoutWidget() throws ServletException, IOException { TestUtil.createUserAndLogin(); final CreateContactUsWidgetRequest request = new CreateContactUsWidgetRequest(); request.setWidgetId(2); service.execute(request); } private final CreateContactUsService service = new CreateContactUsService(); private final Persistance persistance = ServiceLocator.getPersistance(); }
@Test public void executeWithPageBreaks() throws Exception { TestUtil.createUserAndLogin(); final Site site = TestUtil.createSite(); final PageManager pageVersion = TestUtil.createPageVersionSiteUser(); Widget widgetCustomForm = TestUtil.createCustomFormWidget(pageVersion); final DraftCustomForm customForm = TestUtil.createCustomForm(site); final List<DraftFormItem> formItems = new ArrayList<DraftFormItem>(); formItems.add(TestUtil.createFormItem(FormItemName.FIRST_NAME, 0)); formItems.add(TestUtil.createFormItem(FormItemName.PAGE_BREAK, 1)); formItems.add(TestUtil.createFormItem(FormItemName.LAST_NAME, 2)); customForm.setFormItems(formItems); // FIRST PAGE List<FilledFormItem> filledFormItems = TestUtil.createFilledFormItems(FormItemName.FIRST_NAME); filledFormItems.get(0).setValue("FN1"); SubmitCustomFormRequest request = new SubmitCustomFormRequest(); request.setFormId(customForm.getFormId()); request.setWidgetId(widgetCustomForm.getWidgetId()); request.setFilledFormItems(new ArrayList<FilledFormItem>()); request.setRequestNextPage(true); request.setPageBreaksToPass(1); request.setVerificationCode("aaaaaa"); request.setFilledFormItems(filledFormItems); ServiceLocator.getSessionStorage() .setNoBotCode(null, "customForm" + widgetCustomForm.getWidgetId(), "aaaaaa"); SubmitCustomFormResponse response = service.execute(request); Assert.assertNotNull(response.getNextPageHtml()); FilledForm filledContactUsForm = ServiceLocator.getPersistance().getFilledFormById(response.getFilledFormId()); Assert.assertNotNull(filledContactUsForm); Assert.assertEquals( filledFormItems.get(0).getValues(), filledContactUsForm.getFilledFormItems().get(0).getValues()); // SECOND PAGE filledFormItems = TestUtil.createFilledFormItems(FormItemName.LAST_NAME); filledFormItems.get(0).setValue("LN1"); request = new SubmitCustomFormRequest(); request.setFormId(customForm.getFormId()); request.setWidgetId(widgetCustomForm.getWidgetId()); request.setFilledFormItems(new ArrayList<FilledFormItem>()); request.setRequestNextPage(true); request.setFilledFormId(response.getFilledFormId()); request.setPageBreaksToPass(2); request.setFilledFormItems(filledFormItems); response = service.execute(request); // Ok, now after we have filled out last form page we need to show first form page again with // the // message about successfull form submit. Assert.assertNotNull(response.getNextPageHtml()); Assert.assertTrue(response.isShowSuccessfullSubmitMessage()); filledContactUsForm = ServiceLocator.getPersistance().getFilledFormById(response.getFilledFormId()); Assert.assertEquals( filledFormItems.get(0).getValues(), filledContactUsForm.getFilledFormItems().get(1).getValues()); }