List of usage examples for java.lang Long equals
public boolean equals(Object obj)
From source file:com.square.core.service.implementations.PersonneServiceImplementation.java
@Override public CoordonneesDto creerOuMettreAJourCoordonnees(CoordonneesDto coordonnees, Boolean impacterFamille, Boolean forcerDesactivationEservices) { final RapportDto rapportCoordonnees = new RapportDto(); if (coordonnees == null) { throw new BusinessException( messageSourceUtil.get(PersonnePhysiqueKeyUtil.MESSAGE_ERREUR_PERSONNE_DTO_NULL)); }// ww w. j ava 2s . c om if (coordonnees.getIdPersonne() == null) { throw new BusinessException( messageSourceUtil.get(PersonnePhysiqueKeyUtil.MESSAGE_ERREUR_PERSONNE_NULL)); } final Long idNatureMobilePrive = squareMappingService.getIdNatureMobilePrive(); final Long idNatureMobileTravail = squareMappingService.getIdNatureMobileTravail(); // Controles gnriques (Au moins 1 moyen de communication) boolean unEmailTrouve = false; boolean unTelephoneTrouve = false; if (coordonnees.getEmails() != null) { for (EmailDto email : coordonnees.getEmails()) { if (email.getAdresse() != null && !"".equals(email.getAdresse().trim())) { unEmailTrouve = true; break; } } } if (coordonnees.getTelephones() != null) { for (TelephoneDto telephone : coordonnees.getTelephones()) { if (telephone != null && telephone.getNumero() != null && !"".equals(telephone.getNumero().trim())) { unTelephoneTrouve = true; break; } } } // Rcupration de la personne en base. final Personne personnePrincipale = personneDao.rechercherPersonneParId(coordonnees.getIdPersonne()); if (personnePrincipale == null) { throw new BusinessException( messageSourceUtil.get(PersonnePhysiqueKeyUtil.MESSAGE_ERREUR_PERSONNE_INEXISTANTE)); } final boolean isAdherent = personnePrincipale instanceof PersonnePhysique && ((PersonnePhysique) personnePrincipale).getNature().getId() .equals(squareMappingService.getIdNaturePersonneAdherent()); // Rcupration de la nature de la personne si personne physique Long idNaturePersonnePrincipale = null; final PersonnePhysique personnePrincipalePhysique = personnePhysiqueDao .rechercherPersonneParId(personnePrincipale.getId()); if (personnePrincipalePhysique != null && personnePrincipalePhysique.getNature() != null) { idNaturePersonnePrincipale = personnePrincipalePhysique.getNature().getId(); } final Long idNaturePersonneVivier = squareMappingService.getIdNaturePersonneVivier(); final Long idNaturePersonneBeneficiaireVivier = squareMappingService .getIdNaturePersonneBeneficiaireVivier(); // validationExpressionUtil // .verifierSiVrai(rapport, null, PersonnePhysiqueKeyUtil.MESSAGE_ERREUR_COORDONNEE_OBLIGATOIRE, testUnMoyenDeCommMin, // CoordonneesDto.class.getSimpleName() + ".telephones") // .verifierSiVrai(rapport, null, PersonnePhysiqueKeyUtil.MESSAGE_ERREUR_COORDONNEE_OBLIGATOIRE, testUnMoyenDeCommMin, // CoordonneesDto.class.getSimpleName() + ".emails"); // FIXME Pour le moment, on leve une exception car non pris en charge pour l'affichage de l'interface if (!unEmailTrouve && !unTelephoneTrouve && !idNaturePersonneVivier.equals(idNaturePersonnePrincipale) && !idNaturePersonneBeneficiaireVivier.equals(idNaturePersonnePrincipale)) { throw new BusinessException( messageSourceUtil.get(PersonnePhysiqueKeyUtil.MESSAGE_ERREUR_COORDONNEE_OBLIGATOIRE)); } final Set<Personne> personnes = new LinkedHashSet<Personne>(); // On recherche les membres de la famille de la personne final Set<Personne> famille = getFamille(personnePrincipale); // Si le flag qui indique si l'on doit ajouter la nouvelle adresse aux bnficiaires n'est pas spcifi // Si la personne a une famille, on lve une exception car le flag impacterBeneficiaires doit tre renseign // pour dterminer si il faut ajouter l'adresse aux membres de la famille de la personne if (impacterFamille == null && famille.size() > 0) { throw new ConfirmationImpacterFamilleException( messageSourceUtil.get(PersonnePhysiqueKeyUtil.CONFIRMATION_IMPACTER_FAMILLE, new String[] { String.valueOf(famille.size()) })); } personnes.add(personnePrincipale); if (BooleanUtils.isTrue(impacterFamille)) { // On ajoute les membres de la famille la liste des personnes concernes par la cration de nouvelles coordonnes personnes.addAll(famille); } final Calendar maintenant = Calendar.getInstance(); boolean desactiverEserviceTelephone = false; boolean desactiverEserviceEmail = false; // Traitement des tlphones int nbTelephonesMobile = 0; if (coordonnees.getTelephones() != null && !coordonnees.getTelephones().isEmpty()) { for (int i = 0; i < coordonnees.getTelephones().size(); i++) { final TelephoneDto telephoneDto = coordonnees.getTelephones().get(i); final boolean numeroRenseigne = StringUtils.isNotBlank(telephoneDto.getNumero()); if (telephoneDto.getNature() != null && (telephoneDto.getNature().getIdentifiant().equals(idNatureMobilePrive) || telephoneDto.getNature().getIdentifiant().equals(idNatureMobileTravail)) && numeroRenseigne) { nbTelephonesMobile++; } boolean isTelephoneModifie = false; if (telephoneDto.getId() != null) { // On rcupre le tlphone mettre jour partir de la base de donnes final Telephone telephoneAMaj = telephoneDao.rechercherTelephoneParId(telephoneDto.getId()); // Si on recoit un id ici, mais que le numro n'est pas renseign, il faut supprimer le tlphone correspondant // Note : on ne supprime pas tous les tlphones car d'autres peuvent exister mais ne pas tre affichs dans Square if (!numeroRenseigne) { // Si il faut impacter toute la famille, ou que le tlphone est li la personne principale uniquement if (BooleanUtils.isTrue(impacterFamille) || telephoneAMaj.getPersonnes().size() == 1) { // On supprime le tlphone supprimerTelephone(telephoneAMaj, maintenant); } else { // On enlve le tlphone de la liste des tlphones de la personne principale personnePrincipale.removeTelephone(telephoneAMaj); // on verifie si la personne est le porteur if (telephoneAMaj.getPorteurUid() != null && telephoneAMaj.getPorteurUid().equals(personnePrincipale.getId())) { // on supprime l'identifiant externe et le porteur du telephone restant sur la famille telephoneAMaj.setIdentifiantExterieur(null); telephoneAMaj.setPorteurUid(null); } } continue; } else { // Sinon on dtermine si le tlphone a t modifi isTelephoneModifie = isTelephoneModifie(telephoneAMaj, telephoneDto); // Si le tlphone existe et a t modifi, et qu'il ne faut pas impacter la famille if (BooleanUtils.isFalse(impacterFamille) && isTelephoneModifie && telephoneAMaj.getPersonnes().size() > 1) { // on supprime le telephone de la personne personnePrincipale.removeTelephone(telephoneAMaj); // on supprime l'identifiant pour crer un nouveau telephone telephoneDto.setId(null); // on verifie si la personne est le porteur if (telephoneAMaj.getPorteurUid() != null && telephoneAMaj.getPorteurUid().equals(personnePrincipale.getId())) { // on supprime l'identifiant externe et le porteur du telephone restant sur la famille (pas de synchro aia) telephoneAMaj.setIdentifiantExterieur(null); telephoneAMaj.setPorteurUid(null); } else { // On supprime l'identifiant externe afin de ne pas synchroniser avec aia telephoneDto.setIdext(null); } } } } if (numeroRenseigne) { final RapportDto rapportTelephone = new RapportDto(); controlerTelephone(rapportTelephone, telephoneDto, i); if (rapportTelephone.getRapports() != null && !rapportTelephone.getRapports().isEmpty()) { for (String key : rapportTelephone.getRapports().keySet()) { final SousRapportDto sousRapport = rapportTelephone.getRapports().get(key); rapportCoordonnees.ajoutRapport(sousRapport.getAttribut(), sousRapport.getMessage(), sousRapport.getErreur()); } } if (!rapportTelephone.getEnErreur()) { final Telephone telephone = creerOuMettreAJourTelephone(personnes, telephoneDto, impacterFamille); if (telephone.getId() == null) { // On rattache le tlphone la personne principale personnePrincipale.addTelephone(telephone); if (BooleanUtils.isTrue(impacterFamille)) { // On rattache aussi le tlphone aux membres de sa famille for (Personne personne : famille) { // bug 8832 : on impacte que ceux qui n'ont pas deja de telephones if (personne.getTelephones().size() == 0) { personne.addTelephone(telephone); } } } } } } } } // on desactive l'envoi par telephone if (nbTelephonesMobile == 0 && isAdherent) { // on verifie si la personne possede l'eservice final List<Long> optionsSouscrites = adherentService .getListeIdsTypesOptionsSouscrites(personnePrincipale.getId()); boolean possedeEserviceTelephone = false; for (Long idTypeOption : optionsSouscrites) { if (idTypeOption.equals(adherentMappingService.getIdTypeOptionEnvoiSms())) { possedeEserviceTelephone = true; break; } } desactiverEserviceTelephone = possedeEserviceTelephone; } // Traitement des emails if (coordonnees.getEmails() != null && !coordonnees.getEmails().isEmpty()) { for (int i = 0; i < coordonnees.getEmails().size(); i++) { final EmailDto emailDto = coordonnees.getEmails().get(i); final boolean adresseEmailRenseignee = StringUtils.isNotBlank(emailDto.getAdresse()); boolean isEmailModifie = false; // FIXME : La constante nature de l'email devrait elle etre fournie par le client ? emailDto.setNatureEmail( new IdentifiantLibelleDto(squareMappingService.getIdNatureEmailPersonnel())); if (emailDto.getIdentifiant() != null) { // On rcupre l'email mettre jour partir de la base de donnes final Email emailAMaj = emailDao.rechercherEmailParId(emailDto.getIdentifiant()); // Si on recoit un id ici, mais que les infos ne sont pas renseignes, il faut supprimer le tlphone correspondant // Note : on ne supprime pas tous les tlphones car d'autres peuvent exister mais ne pas tre affichs dans Square if (!adresseEmailRenseignee) { // Si il faut impacter toute la famille, ou que l'email est li la personne principale uniquement if (BooleanUtils.isTrue(impacterFamille) || emailAMaj.getPersonnes().size() == 1) { // On supprime l'email supprimerEmail(emailAMaj, maintenant); } else { // On enlve le tlphone de la liste des tlphones de la personne principale personnePrincipale.removeEmail(emailAMaj); // on verifie si la personne est le porteur if (emailAMaj.getPorteurUid() != null && emailAMaj.getPorteurUid().equals(personnePrincipale.getId())) { // on supprime l'identifiant externe et le porteur de l'email restant sur la famille emailAMaj.setIdentifiantExterieur(null); emailAMaj.setPorteurUid(null); } } if (isAdherent) { // on verifie si la personne possede l'eservice final List<Long> optionsSouscrites = adherentService .getListeIdsTypesOptionsSouscrites(personnePrincipale.getId()); boolean possedeEserviceEmail = false; for (Long idTypeOption : optionsSouscrites) { if (idTypeOption .equals(adherentMappingService.getIdTypeOptionEnvoiMutuellementEmail()) || idTypeOption.equals(adherentMappingService .getIdTypeOptionEnvoiRelevesPrestationEmail())) { possedeEserviceEmail = true; break; } } desactiverEserviceEmail = possedeEserviceEmail; } continue; } else { // Sinon on dtermine si l'email a t modifi isEmailModifie = isEmailModifie(emailAMaj, emailDto); // Si le tlphone existe et a t modifi, et qu'il ne faut pas impacter la famille if (BooleanUtils.isFalse(impacterFamille) && isEmailModifie && emailAMaj.getPersonnes().size() > 1) { // on supprime l'email de la personne personnePrincipale.removeEmail(emailAMaj); // on supprime l'identifiant pour crer un nouvel email emailDto.setIdentifiant(null); // on verifie si la personne est le porteur if (emailAMaj.getPorteurUid() != null && emailAMaj.getPorteurUid().equals(personnePrincipale.getId())) { // on supprime l'identifiant externe et le porteur de l'email restant sur la famille (pas de synchro aia) emailAMaj.setIdentifiantExterieur(null); emailAMaj.setPorteurUid(null); } else { // On supprime l'identifiant externe afin de ne pas synchroniser avec aia emailDto.setIdext(null); } } } } if (adresseEmailRenseignee) { final RapportDto rapportEmail = new RapportDto(); controlerEmail(rapportEmail, emailDto, i); if (rapportEmail.getRapports() != null && !rapportEmail.getRapports().isEmpty()) { for (String key : rapportEmail.getRapports().keySet()) { final SousRapportDto sousRapport = rapportEmail.getRapports().get(key); rapportCoordonnees.ajoutRapport(sousRapport.getAttribut(), sousRapport.getMessage(), sousRapport.getErreur()); } } if (!rapportEmail.getEnErreur()) { final Email email = creerOuMettreAJourEmail(personnes, emailDto, impacterFamille); // Si c'est un nouvel email if (email.getId() == null) { // On rattache le nouvel email la personne principale personnePrincipale.addEMail(email); if (BooleanUtils.isTrue(impacterFamille)) { // On rattache aussi le nouvel email aux membres de sa famille for (Personne personne : famille) { // bug 8832 : on impacte que ceux qui n'ont pas deja d'emails if (personne.getEmails().size() == 0) { personne.addEMail(email); } } } } } } } } // on desactive les eservices suivant les besoins if (!BooleanUtils.isTrue(forcerDesactivationEservices)) { if (desactiverEserviceTelephone && desactiverEserviceEmail) { throw new ConfirmationDesactivationEserviceException(messageSourceUtil .get(PersonneKeyUtil.MESSAGE_CONFIRMATION_DESACTIVATION_ESERVICE_TELEPHONE_ET_EMAIL)); } else if (desactiverEserviceTelephone) { throw new ConfirmationDesactivationEserviceException(messageSourceUtil .get(PersonneKeyUtil.MESSAGE_CONFIRMATION_DESACTIVATION_ESERVICE_TELEPHONE)); } else if (desactiverEserviceEmail) { throw new ConfirmationDesactivationEserviceException( messageSourceUtil.get(PersonneKeyUtil.MESSAGE_CONFIRMATION_DESACTIVATION_ESERVICE_EMAIL)); } } else { if (desactiverEserviceTelephone) { adherentService.desactiverOptionsEnvoiParTelephone(personnePrincipale.getId()); } if (desactiverEserviceEmail) { adherentService.desactiverOptionsEnvoiParEmail(personnePrincipale.getId()); } } // Recherche de l'adresse principale en cours final AdresseCriteresRechercheDto criteresRechercheAdressePrincipale = new AdresseCriteresRechercheDto(); criteresRechercheAdressePrincipale.setIdPersonne(personnePrincipale.getId()); criteresRechercheAdressePrincipale.setIdNature(squareMappingService.getIdNatureAdressePrincipale()); criteresRechercheAdressePrincipale.setActive(true); final List<Adresse> listAddressesPrin = adresseDao .rechercherAdresseParCritere(criteresRechercheAdressePrincipale); Adresse adressePrincipaleEnCours = new Adresse(); boolean plusQueAdressePrincipale = false; boolean choixPasserEnSecondaire = false; if (listAddressesPrin != null && listAddressesPrin.size() > 0) { adressePrincipaleEnCours = listAddressesPrin.get(0); } Calendar dateFinAdressePrincipale = null; // Traitement des adresses if (coordonnees.getAdresses() != null && !coordonnees.getAdresses().isEmpty()) { final RapportDto rapportAdresses = new RapportDto(); for (int i = 0; i < coordonnees.getAdresses().size(); i++) { final AdresseDto adresseDto = coordonnees.getAdresses().get(i); if (adresseDto.getNature() != null && adresseDto.getNature().getIdentifiant() .equals(squareMappingService.getIdNatureAdressePrincipale()) && adressePrincipaleEnCours.getId() != null && !adressePrincipaleEnCours.getId().equals(adresseDto.getIdentifiant()) && (adresseDto.getDateFin() == null || Calendar.getInstance().before(adresseDto.getDateFin()))) { dateFinAdressePrincipale = adresseDto.getDateDebut(); if (!choixPasserEnSecondaire) { choixPasserEnSecondaire = adresseDto.getChoixPasserEnSecondaire() == null ? false : adresseDto.getChoixPasserEnSecondaire().booleanValue(); } plusQueAdressePrincipale = true; } final RapportDto rapportAdresse = new RapportDto(); controlerAdresse(rapportAdresse, adresseDto, i); if (rapportAdresse.getRapports() != null && !rapportAdresse.getRapports().isEmpty()) { for (String key : rapportAdresse.getRapports().keySet()) { final SousRapportDto sousRapport = rapportAdresse.getRapports().get(key); rapportCoordonnees.ajoutRapport(sousRapport.getAttribut(), sousRapport.getMessage(), sousRapport.getErreur()); } } if (!rapportAdresse.getEnErreur()) { if (adresseDto.getIdentifiant() != null) { final Adresse adresseAMaj = adresseDao.rechercherAdresseParId(adresseDto.getIdentifiant()); final boolean isAdresseModifiee = isAdresseModifiee(adresseAMaj, adresseDto); // Si l'adresse existe et a t modifie, et qu'il ne faut pas impacter la famille if (BooleanUtils.isFalse(impacterFamille) && isAdresseModifiee && adresseAMaj.getPersonnes().size() > 1) { // on supprime l'adresse de la personne personnePrincipale.removeAdresse(adresseAMaj); // On supprime l'identifiant de l'adresse afin de crer une nouvelle adresse adresseDto.setIdentifiant(null); // on verifie si la personne est le porteur if (adresseAMaj.getPorteurUid() != null && adresseAMaj.getPorteurUid().equals(personnePrincipale.getId())) { // on supprime l'identifiant externe et le porteur de l'adresse restante sur la famille (pas de synchro aia) adresseAMaj.setIdentifiantExterieur(null); adresseAMaj.setPorteurUid(null); } else { // On supprime l'identifiant externe pour ne pas synchroniser avec aia adresseDto.setIdext(null); } } } final Adresse adresseCree = creerOuMettreAJourAdresse(personnes, adresseDto, impacterFamille); // on met l'id ext jour apres la cration (probleme de flush a cause de la contrainte d'unicit) adresseCree.setIdentifiantExterieur(adresseDto.getIdext()); } } final AdresseNature adresseNature = adresseNatureDao .rechercheAdresseNatureParId(squareMappingService.getIdNatureAdresseSecondaire()); // si le rapport n'est pas en erreur, on met jour l'adresse principale if (Boolean.FALSE.equals(rapportAdresses.getEnErreur())) { for (int i = 0; i < coordonnees.getAdresses().size(); i++) { final AdresseDto adresseDto = coordonnees.getAdresses().get(i); if (plusQueAdressePrincipale && (adressePrincipaleEnCours.getId().equals(adresseDto.getIdentifiant()))) { if (choixPasserEnSecondaire) { adressePrincipaleEnCours.setNature(adresseNature); } else { dateFinAdressePrincipale.add(Calendar.DAY_OF_MONTH, -1); adressePrincipaleEnCours.setDateFin(dateFinAdressePrincipale); } break; } } } } if (Boolean.TRUE.equals(rapportCoordonnees.getEnErreur()) && !idNaturePersonneVivier.equals(idNaturePersonnePrincipale) && !idNaturePersonneBeneficiaireVivier.equals(idNaturePersonnePrincipale)) { RapportUtil.logRapport(rapportCoordonnees, logger); throw new ControleIntegriteException(rapportCoordonnees); } /* * // Un contact devra avoir au moins une adresse principal criteresRechercheAdressePrincipale = new AdresseCriteresRechercheDto(); * criteresRechercheAdressePrincipale.setIdPersonne(personne.getId()); * criteresRechercheAdressePrincipale.setIdNature(squareMappingService.getIdNatureAdressePrincipale()); long nbPrimaires = * adresseDao.rechercherIdAdressesParCriteres(criteresRechercheAdressePrincipale).size(); if (nbPrimaires == 0) { throw new * BusinessException(messageSourceUtil.get(PersonnePhysiqueKeyUtil.MESSAGE_ERREUR_AUCUNE_ADRESSE_PRINCIPALE)); } else if (nbPrimaires > 1) { throw new * BusinessException(messageSourceUtil.get(PersonnePhysiqueKeyUtil.MESSAGE_ERREUR_ADRESSE_PRINCIPALE_DUPLIQUEE)); } */ // 2.13 Une date de fin ne pourra etre mis sur une adresse principal que s'il existe une adresse secondaire. // Dans ce cas l'adresse principal deviendra automatiquement secondaire et l'adresse secondaire deviendra principal Adresse adressePrincipale = null; Adresse adresseSecondaire = null; for (Adresse adresse : personnePrincipale.getAdresses()) { if (adresse.getNature().getId().equals(squareMappingService.getIdNatureAdressePrincipale())) { adressePrincipale = adresse; } if (adresse.getNature().getId().equals(squareMappingService.getIdNatureAdresseSecondaire()) && adresse.getDateFin() == null) { adresseSecondaire = adresse; } } if (adressePrincipale != null && adressePrincipale.getDateFin() != null && adresseSecondaire != null) { // Changement adresse principale adresse secondaire adressePrincipale.setNature(adresseNatureDao .rechercheAdresseNatureParId(squareMappingService.getIdNatureAdresseSecondaire())); adresseSecondaire.setNature(adresseNatureDao .rechercheAdresseNatureParId(squareMappingService.getIdNatureAdressePrincipale())); // Enregistrement des adresses final AdresseDto adresseDtoPrincipal = mapperDozerBean.map(adressePrincipale, AdresseDto.class); final AdresseDto adresseDtoSecondaire = mapperDozerBean.map(adresseSecondaire, AdresseDto.class); creerOuMettreAJourAdresse(personnes, adresseDtoPrincipal, impacterFamille); creerOuMettreAJourAdresse(personnes, adresseDtoSecondaire, impacterFamille); } if (!idNaturePersonneVivier.equals(idNaturePersonnePrincipale) && !idNaturePersonneBeneficiaireVivier.equals(idNaturePersonnePrincipale)) { controlerPersonneAUneAdressePrincipale(personnePrincipale); } // si il s'agit d'une personne physique et vivier ou bnficiaire vivier, on transforme en prospect ou bnficiaire prospect boolean vivierToProspect = false; boolean hasNaturePersonneChanged = false; String ancienneNaturePersonne = ""; String nouvelleNaturePersonne = ""; if (personnePrincipalePhysique != null && personnePrincipalePhysique.getNature() != null) { ancienneNaturePersonne = personnePrincipalePhysique.getNature().getLibelle(); Long idNaturePersonne = null; if (idNaturePersonneVivier.equals(idNaturePersonnePrincipale) && validationPersonneUtil.verifierContrainteProspect(personnePrincipalePhysique)) { idNaturePersonne = squareMappingService.getIdNaturePersonneProspect(); vivierToProspect = true; hasNaturePersonneChanged = true; } else if (idNaturePersonneBeneficiaireVivier.equals(idNaturePersonnePrincipale) && validationPersonneUtil.verifierContrainteBeneficiaireProspect(personnePrincipalePhysique)) { idNaturePersonne = squareMappingService.getIdNaturePersonneBeneficiaireProspect(); hasNaturePersonneChanged = true; } if (idNaturePersonne != null) { final PersonnePhysiqueNature naturePersonne = personnePhysiqueNatureDao .rechercherPersonnePhysiqueParId(idNaturePersonne); if (naturePersonne != null) { nouvelleNaturePersonne = naturePersonne.getLibelle(); } personnePrincipalePhysique.setNature(naturePersonne); } } // si la personne est passe de vivier prospect et qu'elle a des bnficiaires vivier, // on essaye de les passer en bnficiaire prospect si c'est possible if (vivierToProspect && famille != null && famille.size() > 0) { for (Personne beneficiaire : famille) { final PersonnePhysique beneficiairePhysique = (PersonnePhysique) beneficiaire; if (beneficiairePhysique.getNature() != null && idNaturePersonneBeneficiaireVivier.equals(beneficiairePhysique.getNature().getId()) && validationPersonneUtil.verifierContrainteBeneficiaireProspect(beneficiairePhysique)) { final PersonnePhysiqueNature naturePersonne = personnePhysiqueNatureDao .rechercherPersonnePhysiqueParId( squareMappingService.getIdNaturePersonneBeneficiaireProspect()); beneficiairePhysique.setNature(naturePersonne); } } } final CoordonneesDto newCoordonnees = rechercherCoordonneesParIdPersonne(personnePrincipale.getId()); newCoordonnees.setHasNaturePersonneChanged(hasNaturePersonneChanged); newCoordonnees.setAncienneNaturePersonne(ancienneNaturePersonne); newCoordonnees.setNouvelleNaturePersonne(nouvelleNaturePersonne); return newCoordonnees; }
From source file:org.alfresco.repo.domain.node.AbstractNodeDAOImpl.java
@Override public boolean isInCurrentTxn(Long nodeId) { Long currentTxnId = getCurrentTransactionId(false); if (currentTxnId == null) { // No transactional changes have been made to any nodes, therefore the node cannot // be part of the current transaction return false; }//from ww w. j a va2s.c o m Node node = getNodeNotNull(nodeId, false); Long nodeTxnId = node.getTransaction().getId(); return nodeTxnId.equals(currentTxnId); }
From source file:jp.primecloud.auto.service.impl.LoadBalancerServiceImpl.java
/** * {@inheritDoc}// w w w. j a va 2 s . com */ @Override public void updateCloudstackLoadBalancer(Long loadBalancerNo, String loadBalancerName, String comment, Long componentNo, String algorithm, String pubricPort, String privatePort) { // ? if (loadBalancerNo == null) { throw new AutoApplicationException("ECOMMON-000003", "loadBalancerNo"); } if (loadBalancerName == null || loadBalancerName.length() == 0) { throw new AutoApplicationException("ECOMMON-000003", "loadBalancerName"); } if (componentNo == null) { throw new AutoApplicationException("ECOMMON-000003", "componentNo"); } if (algorithm == null) { throw new AutoApplicationException("ECOMMON-000003", "algorithm"); } if (pubricPort == null) { throw new AutoApplicationException("ECOMMON-000003", "pubricPort"); } if (privatePort == null) { throw new AutoApplicationException("ECOMMON-000003", "privatePort"); } // ?? if (!Pattern.matches("^[0-9a-z]|[0-9a-z][0-9a-z-]*[0-9a-z]$", loadBalancerName)) { throw new AutoApplicationException("ECOMMON-000012", "loadBalancerName"); } // TODO: ?? // ??? LoadBalancer loadBalancer = loadBalancerDao.read(loadBalancerNo); CloudstackLoadBalancer csloadBalancer = cloudstackLoadBalancerDao.read(loadBalancerNo); if (loadBalancer == null) { // ?????? throw new AutoApplicationException("ESERVICE-000603", loadBalancerNo); } // ??????? if (LoadBalancerStatus.fromStatus(loadBalancer.getStatus()) != LoadBalancerStatus.STOPPED) { // ?????????????????? if (!StringUtils.equals(loadBalancer.getLoadBalancerName(), loadBalancerName) || !componentNo.equals(loadBalancer.getComponentNo())) { throw new AutoApplicationException("ESERVICE-000604", loadBalancer.getLoadBalancerName()); } if (!StringUtils.equals(csloadBalancer.getAlgorithm(), algorithm) || !StringUtils.equals(csloadBalancer.getPublicport(), pubricPort) || !StringUtils.equals(csloadBalancer.getPrivateport(), privatePort)) { throw new AutoApplicationException("ESERVICE-000604", loadBalancer.getLoadBalancerName()); } } // ????? if (!StringUtils.equals(loadBalancer.getLoadBalancerName(), loadBalancerName)) { // ?????? LoadBalancer checkLoadBalancer = loadBalancerDao .readByFarmNoAndLoadBalancerName(loadBalancer.getFarmNo(), loadBalancerName); if (checkLoadBalancer != null && !loadBalancerNo.equals(checkLoadBalancer.getLoadBalancerNo())) { // ???????? throw new AutoApplicationException("ESERVICE-000601", loadBalancerName); } // ???? Instance checkInstance = instanceDao.readByFarmNoAndInstanceName(loadBalancer.getFarmNo(), loadBalancerName); if (checkInstance != null) { // ??????? throw new AutoApplicationException("ESERVICE-000626", loadBalancerName); } } // ???? long countComponent = componentDao.countByComponentNo(componentNo); if (countComponent == 0) { // ??????? throw new AutoApplicationException("ESERVICE-000607", componentNo); } Farm farm = farmDao.read(loadBalancer.getFarmNo()); // ?? loadBalancer.setLoadBalancerName(loadBalancerName); loadBalancer.setComment(comment); loadBalancer.setFqdn(loadBalancerName + "." + farm.getDomainName()); loadBalancer.setComponentNo(componentNo); loadBalancerDao.update(loadBalancer); // ?? csloadBalancer.setAlgorithm(algorithm); csloadBalancer.setPublicport(pubricPort); csloadBalancer.setPrivateport(privatePort); cloudstackLoadBalancerDao.update(csloadBalancer); // eventLogger.log(EventLogLevel.INFO, farm.getFarmNo(), farm.getFarmName(), null, null, null, null, "LoadBalancerUpdate", null, null, new Object[] { loadBalancerName }); }
From source file:org.alfresco.repo.domain.node.AbstractNodeDAOImpl.java
/** * Does differencing to add and/or remove properties. Internally, the existing properties * will be retrieved and a difference performed to work out which properties need to be * created, updated or deleted./* ww w . java 2 s. c o m*/ * <p/> * Note: The cached properties are not updated * * @param nodeId the node ID * @param newProps the properties to add or update * @param isAddOnly <tt>true</tt> if the new properties are just an update or * <tt>false</tt> if the properties are a complete set * @return Returns <tt>true</tt> if any properties were changed */ private boolean setNodePropertiesImpl(Long nodeId, Map<QName, Serializable> newProps, boolean isAddOnly) { if (isAddOnly && newProps.size() == 0) { return false; // No point adding nothing } // Get the current node Node node = getNodeNotNull(nodeId, false); // Create an update node NodeUpdateEntity nodeUpdate = new NodeUpdateEntity(); nodeUpdate.setId(nodeId); // Copy inbound values newProps = new HashMap<QName, Serializable>(newProps); // Copy cm:auditable if (!policyBehaviourFilter.isEnabled(node.getNodeRef(), ContentModel.ASPECT_AUDITABLE)) { // Only bother if cm:auditable properties are present if (AuditablePropertiesEntity.hasAuditableProperty(newProps.keySet())) { AuditablePropertiesEntity auditableProps = node.getAuditableProperties(); if (auditableProps == null) { auditableProps = new AuditablePropertiesEntity(); } else { auditableProps = new AuditablePropertiesEntity(auditableProps); // Unlocked instance } boolean containedAuditProperties = auditableProps.setAuditValues(null, null, newProps); if (!containedAuditProperties) { // Double-check (previous hasAuditableProperty should cover it) // The behaviour is disabled, but no audit properties were passed in auditableProps = null; } nodeUpdate.setAuditableProperties(auditableProps); nodeUpdate.setUpdateAuditableProperties(true); } } // Remove cm:auditable newProps.keySet().removeAll(AuditablePropertiesEntity.getAuditablePropertyQNames()); // Check if the sys:localized property is being changed Long oldNodeLocaleId = node.getLocaleId(); Locale newLocale = DefaultTypeConverter.INSTANCE.convert(Locale.class, newProps.get(ContentModel.PROP_LOCALE)); if (newLocale != null) { Long newNodeLocaleId = localeDAO.getOrCreateLocalePair(newLocale).getFirst(); if (!newNodeLocaleId.equals(oldNodeLocaleId)) { nodeUpdate.setLocaleId(newNodeLocaleId); nodeUpdate.setUpdateLocaleId(true); } } // else: a 'null' new locale is completely ignored. This is the behaviour we choose. // Remove sys:localized LocalizedPropertiesEntity.removeLocalizedProperties(node, newProps); // Remove sys:referenceable ReferenceablePropertiesEntity.removeReferenceableProperties(node, newProps); // Load the current properties. // This means that we have to go to the DB during cold-write operations, // but usually a write occurs after a node has been fetched of viewed in // some way by the client code. Loading the existing properties has the // advantage that the differencing code can eliminate unnecessary writes // completely. Map<QName, Serializable> oldPropsCached = getNodePropertiesCached(nodeId); // Keep pristine for caching Map<QName, Serializable> oldProps = new HashMap<QName, Serializable>(oldPropsCached); // If we're adding, remove current properties that are not of interest if (isAddOnly) { oldProps.keySet().retainAll(newProps.keySet()); } // We need to convert the new properties to our internally-used format, // which is compatible with model i.e. people may have passed in data // which needs to be converted to a model-compliant format. We do this // before comparisons to avoid false negatives. Map<NodePropertyKey, NodePropertyValue> newPropsRaw = nodePropertyHelper .convertToPersistentProperties(newProps); newProps = nodePropertyHelper.convertToPublicProperties(newPropsRaw); // Now find out what's changed Map<QName, MapValueComparison> diff = EqualsHelper.getMapComparison(oldProps, newProps); // Keep track of properties to delete and add Set<QName> propsToDelete = new HashSet<QName>(oldProps.size() * 2); Map<QName, Serializable> propsToAdd = new HashMap<QName, Serializable>(newProps.size() * 2); Set<QName> contentQNamesToDelete = new HashSet<QName>(5); for (Map.Entry<QName, MapValueComparison> entry : diff.entrySet()) { QName qname = entry.getKey(); PropertyDefinition removePropDef = dictionaryService.getProperty(qname); boolean isContent = (removePropDef != null && removePropDef.getDataType().getName().equals(DataTypeDefinition.CONTENT)); switch (entry.getValue()) { case EQUAL: // Ignore break; case LEFT_ONLY: // Not in the new properties propsToDelete.add(qname); if (isContent) { contentQNamesToDelete.add(qname); } break; case NOT_EQUAL: // Must remove from the LHS propsToDelete.add(qname); if (isContent) { contentQNamesToDelete.add(qname); } // Fall through to load up the RHS case RIGHT_ONLY: // We're adding this Serializable value = newProps.get(qname); if (isContent && value != null) { ContentData newContentData = (ContentData) value; Long newContentDataId = contentDataDAO.createContentData(newContentData).getFirst(); value = new ContentDataWithId(newContentData, newContentDataId); } propsToAdd.put(qname, value); break; default: throw new IllegalStateException("Unknown MapValueComparison: " + entry.getValue()); } } boolean modifyProps = propsToDelete.size() > 0 || propsToAdd.size() > 0; boolean updated = modifyProps || nodeUpdate.isUpdateAnything(); // Bring the node into the current transaction if (nodeUpdate.isUpdateAnything()) { // We have to explicitly update the node (sys:locale or cm:auditable) if (updateNodeImpl(node, nodeUpdate, null)) { // Copy the caches across NodeVersionKey nodeVersionKey = node.getNodeVersionKey(); NodeVersionKey newNodeVersionKey = getNodeNotNull(nodeId, false).getNodeVersionKey(); copyNodeAspectsCached(nodeVersionKey, newNodeVersionKey); copyNodePropertiesCached(nodeVersionKey, newNodeVersionKey); copyParentAssocsCached(node); } } else if (modifyProps) { // Touch the node; all caches are fine touchNode(nodeId, null, null, false, false, false); } // Touch to bring into current txn if (modifyProps) { // Clean up content properties try { if (contentQNamesToDelete.size() > 0) { Set<Long> contentQNameIdsToDelete = qnameDAO.convertQNamesToIds(contentQNamesToDelete, false); contentDataDAO.deleteContentDataForNode(nodeId, contentQNameIdsToDelete); } } catch (Throwable e) { throw new AlfrescoRuntimeException("Failed to delete content properties: \n" + " Node: " + nodeId + "\n" + " Delete Tried: " + contentQNamesToDelete, e); } try { // Apply deletes Set<Long> propQNameIdsToDelete = qnameDAO.convertQNamesToIds(propsToDelete, true); deleteNodeProperties(nodeId, propQNameIdsToDelete); // Now create the raw properties for adding newPropsRaw = nodePropertyHelper.convertToPersistentProperties(propsToAdd); insertNodeProperties(nodeId, newPropsRaw); } catch (Throwable e) { // Don't trust the caches for the node invalidateNodeCaches(nodeId); // Focused error throw new AlfrescoRuntimeException("Failed to write property deltas: \n" + " Node: " + nodeId + "\n" + " Old: " + oldProps + "\n" + " New: " + newProps + "\n" + " Diff: " + diff + "\n" + " Delete Tried: " + propsToDelete + "\n" + " Add Tried: " + propsToAdd, e); } // Build the properties to cache based on whether this is an append or replace Map<QName, Serializable> propsToCache = null; if (isAddOnly) { // Copy cache properties for additions propsToCache = new HashMap<QName, Serializable>(oldPropsCached); // Combine the old and new properties propsToCache.putAll(propsToAdd); } else { // Replace old properties propsToCache = newProps; propsToCache.putAll(propsToAdd); // Ensure correct types } // Update cache setNodePropertiesCached(nodeId, propsToCache); } // Done if (isDebugEnabled && updated) { logger.debug("Modified node properties: " + nodeId + "\n" + " Removed: " + propsToDelete + "\n" + " Added: " + propsToAdd + "\n" + " Node Update: " + nodeUpdate); } return updated; }
From source file:com.funambol.server.engine.Sync4jStrategy.java
/** * Verifies that the given item the size of its content metches the * specified size, if specified. In the case of a mismatch, a * <code>SyncSourceException</code> is thrown with status code * OBJECT_SIZE_MISMATCH (424).//ww w . ja va2s. c om * * @param item item to check * * @throws ObjectSizeMismatchException if the content size does not match the declared size (if declared) */ private void checkSize(SyncItem item) throws ObjectSizeMismatchException { if (log.isTraceEnabled()) { log.trace("Check item size"); } Long size = (Long) ((AbstractSyncItem) item).getPropertyValue(AbstractSyncItem.PROPERTY_DECLARED_SIZE); if (size == null) { if (log.isTraceEnabled()) { log.trace("Declared size is null...skip the check"); } return; } if (log.isTraceEnabled()) { log.trace("Declared size: " + size); } Long contentSize = (Long) ((AbstractSyncItem) item) .getPropertyValue(AbstractSyncItem.PROPERTY_CONTENT_SIZE); if (contentSize == null) { contentSize = new Long(item.getContent().length); } if (log.isTraceEnabled()) { log.trace("Content size: " + contentSize); } // // We cannot check the content lenght (content.lenght) because the items // are already handled by the DataTransformationManager in the Sync4jEngine // See Sync4jEngine.applyDataTransformationOnIngoingItems // if (contentSize == null || !size.equals(contentSize)) { if (log.isTraceEnabled()) { log.trace("Size mismatch. The size of the received object (" + contentSize + ") does not match the declared size (" + size + ")"); } throw new ObjectSizeMismatchException("The size of the received object does not match the given size"); } }
From source file:jp.primecloud.auto.service.impl.InstanceServiceImpl.java
protected Long createInstance(Long farmNo, String instanceName, Long platformNo, String comment, Long imageNo) { // ?//from ww w. j a va 2 s .c o m if (farmNo == null) { throw new AutoApplicationException("ECOMMON-000003", "farmNo"); } if (instanceName == null || instanceName.length() == 0) { throw new AutoApplicationException("ECOMMON-000003", "instanceName"); } if (platformNo == null) { throw new AutoApplicationException("ECOMMON-000003", "platformNo"); } if (imageNo == null) { throw new AutoApplicationException("ECOMMON-000003", "imageNo"); } // ?? if (!Pattern.matches("^[0-9a-z]|[0-9a-z][0-9a-z-]*[0-9a-z]$", instanceName)) { throw new AutoApplicationException("ECOMMON-000012", "instanceName"); } // ??? Image image = imageDao.read(imageNo); Platform platform = platformDao.read(platformNo); if (platformNo.equals(image.getPlatformNo()) == false) { throw new AutoApplicationException("ESERVICE-000405", imageNo, platform.getPlatformName()); } // TODO: ?? // ????? Instance checkInstance = instanceDao.readByFarmNoAndInstanceName(farmNo, instanceName); if (checkInstance != null) { // ??????? throw new AutoApplicationException("ESERVICE-000401", instanceName); } // ????? LoadBalancer checkLoadBalancer = loadBalancerDao.readByFarmNoAndLoadBalancerName(farmNo, instanceName); if (checkLoadBalancer != null) { // ???????? throw new AutoApplicationException("ESERVICE-000417", instanceName); } // ?? Farm farm = farmDao.read(farmNo); if (farm == null) { throw new AutoApplicationException("ESERVICE-000406", farmNo); } // fqdn??? String fqdn = instanceName + "." + farm.getDomainName(); if (fqdn.length() > 63) { throw new AutoApplicationException("ESERVICE-000418", fqdn); } // TODO: ?? // VMware??Windows???VMware??????Windows???????? // TODO: OS?? if (PCCConstant.PLATFORM_TYPE_VMWARE.equals(platform.getPlatformType()) && StringUtils.startsWithIgnoreCase(image.getOs(), PCCConstant.OS_NAME_WIN)) { List<Instance> allInstances = instanceDao.readAll(); for (Instance instance2 : allInstances) { if (StringUtils.equals(instanceName, instance2.getInstanceName())) { Platform platform2 = platformDao.read(instance2.getPlatformNo()); if (PCCConstant.PLATFORM_TYPE_VMWARE.equals(platform2.getPlatformType())) { Image image2 = imageDao.read(instance2.getImageNo()); if (StringUtils.startsWithIgnoreCase(image2.getOs(), PCCConstant.OS_NAME_WIN)) { // VMware?????Windows??? throw new AutoApplicationException("ESERVICE-000419", instanceName); } } } } } // ?? String instanceCode = passwordGenerator.generate(20); // ?? Instance instance = new Instance(); instance.setFarmNo(farmNo); instance.setInstanceName(instanceName); instance.setPlatformNo(platformNo); instance.setImageNo(imageNo); instance.setEnabled(false); instance.setComment(comment); instance.setFqdn(fqdn); instance.setInstanceCode(instanceCode); instance.setStatus(InstanceStatus.STOPPED.toString()); instanceDao.create(instance); // TODO: OS?? if (!StringUtils.startsWithIgnoreCase(image.getOs(), PCCConstant.OS_NAME_WIN) || (StringUtils.startsWithIgnoreCase(image.getOs(), PCCConstant.OS_NAME_WIN) && PCCConstant.PLATFORM_TYPE_VMWARE.equals(platform.getPlatformType())) || (StringUtils.startsWithIgnoreCase(image.getOs(), PCCConstant.OS_NAME_WIN) && PCCConstant.PLATFORM_TYPE_AZURE.equals(platform.getPlatformType())) || (StringUtils.startsWithIgnoreCase(image.getOs(), PCCConstant.OS_NAME_WIN) && PCCConstant.PLATFORM_TYPE_OPENSTACK.equals(platform.getPlatformType()))) { // OpenStack?Puppet????? //if (!PCCConstant.PLATFORM_TYPE_OPENSTACK.equals(platform.getPlatformType())) { // Puppet?? PuppetInstance puppetInstance = new PuppetInstance(); puppetInstance.setInstanceNo(instance.getInstanceNo()); puppetInstanceDao.create(puppetInstance); //} } Boolean useZabbix = BooleanUtils.toBooleanObject(Config.getProperty("zabbix.useZabbix")); if (BooleanUtils.isTrue(useZabbix)) { // Zabbix?? ZabbixInstance zabbixInstance = new ZabbixInstance(); zabbixInstance.setInstanceNo(instance.getInstanceNo()); zabbixInstanceDao.create(zabbixInstance); } return instance.getInstanceNo(); }
From source file:jp.primecloud.auto.service.impl.ComponentServiceImpl.java
/** * {@inheritDoc}//ww w . ja v a2s .c o m */ protected void doAssociate(Long componentNo, List<Long> instanceNos) { Component component = componentDao.read(componentNo); // ???? List<Instance> allInstances = instanceDao.readByFarmNo(component.getFarmNo()); List<ComponentInstance> componentInstances = componentInstanceDao.readByComponentNo(componentNo); for (Instance instance : allInstances) { // ??????? ComponentInstance componentInstance = null; for (ComponentInstance tmpComponentInstance : componentInstances) { if (instance.getInstanceNo().equals(tmpComponentInstance.getInstanceNo())) { componentInstance = tmpComponentInstance; break; } } if (instanceNos.contains(instance.getInstanceNo())) { // ?????? if (componentInstance == null) { // ???????? componentInstance = new ComponentInstance(); componentInstance.setComponentNo(componentNo); componentInstance.setInstanceNo(instance.getInstanceNo()); componentInstance.setAssociate(true); componentInstance.setEnabled(false); componentInstance.setStatus(ComponentInstanceStatus.STOPPED.toString()); componentInstanceDao.create(componentInstance); } else { // ??????? if (BooleanUtils.isNotTrue(componentInstance.getAssociate())) { componentInstance.setAssociate(true); componentInstanceDao.update(componentInstance); } } } else { // ???????? if (componentInstance != null) { // ???? ComponentInstanceStatus status = ComponentInstanceStatus .fromStatus(componentInstance.getStatus()); if (status == ComponentInstanceStatus.STOPPED) { // Zabbix??? if (zabbixInstanceDao.countByInstanceNo(componentInstance.getInstanceNo()) > 0) { zabbixHostProcess.removeTemplate(componentInstance.getInstanceNo(), componentNo); } /****************************************************************** * ??????? * ??VCLOUDUSiZE????? ******************************************************************/ List<VcloudDisk> vdisks = vcloudDiskDao.readByInstanceNo(instance.getInstanceNo()); for (VcloudDisk disk : vdisks) { if (componentNo.equals(disk.getComponentNo())) { //componentNo???????? Farm farm = farmDao.read(instance.getFarmNo()); IaasGatewayWrapper gateway = iaasGatewayFactory.createIaasGateway(farm.getUserNo(), instance.getPlatformNo()); try { gateway.deleteVolume(String.valueOf(disk.getDiskNo())); } catch (AutoException ignore) { // ?????????????? } // vcloudDiskDao.delete(disk); } } // ??????????? componentInstanceDao.delete(componentInstance); } else { // ?? if (BooleanUtils.isTrue(componentInstance.getAssociate())) { componentInstance.setAssociate(false); componentInstanceDao.update(componentInstance); } } } } } ComponentType componentType = componentTypeDao.read(component.getComponentTypeNo()); // MySQL?????Master?Slave? if (MySQLConstants.COMPONENT_TYPE_NAME.equals(componentType.getComponentTypeName())) { // Master/Slave?? Long masterInstanceNo = null; Set<Long> slaveInstanceNos = new LinkedHashSet<Long>(); List<InstanceConfig> instanceConfigs = instanceConfigDao.readByComponentNo(componentNo); for (InstanceConfig instanceConfig : instanceConfigs) { if (MySQLConstants.CONFIG_NAME_MASTER_INSTANCE_NO.equals(instanceConfig.getConfigName())) { if (StringUtils.isEmpty(instanceConfig.getConfigValue())) { masterInstanceNo = instanceConfig.getInstanceNo(); } else { slaveInstanceNos.add(instanceConfig.getInstanceNo()); } } } // Master?????????Master?? if (masterInstanceNo == null && instanceNos.size() > 0) { masterInstanceNo = instanceNos.get(0); InstanceConfig instanceConfig = new InstanceConfig(); instanceConfig.setInstanceNo(masterInstanceNo); instanceConfig.setComponentNo(componentNo); instanceConfig.setConfigName(MySQLConstants.CONFIG_NAME_MASTER_INSTANCE_NO); instanceConfig.setConfigValue(null); instanceConfigDao.create(instanceConfig); } // Master/Slave??????Slave?? if (masterInstanceNo != null) { for (Long instanceNo : instanceNos) { if (!instanceNo.equals(masterInstanceNo) && !slaveInstanceNos.contains(instanceNo)) { InstanceConfig instanceConfig = new InstanceConfig(); instanceConfig.setInstanceNo(instanceNo); instanceConfig.setComponentNo(componentNo); instanceConfig.setConfigName(MySQLConstants.CONFIG_NAME_MASTER_INSTANCE_NO); instanceConfig.setConfigValue(masterInstanceNo.toString()); instanceConfigDao.create(instanceConfig); } } } } }
From source file:com.square.core.service.implementations.ActionServiceImplementation.java
@Override public ActionResultatDto modifierAction(ActionModificationDto actionModificationDto) { // Dto null/*from w w w. j av a 2s . co m*/ if (actionModificationDto == null) { throw new BusinessException(messageSourceUtil.get(ActionKeyUtil.MESSAGE_ERREUR_ACTION_DTO_NULL)); } // Identifiant de l'action null if (actionModificationDto.getIdAction() == null) { throw new BusinessException(messageSourceUtil.get(ActionKeyUtil.MESSAGE_ERREUR_ACTION_IDACTION_NULL)); } // Rcupration de l'action correspondant final Action actionAModifier = actionDao.rechercherActionParId(actionModificationDto.getIdAction()); if (actionAModifier == null) { throw new BusinessException(messageSourceUtil.get(ActionKeyUtil.MESSAGE_ERREUR_ACTION_INEXISTANTE)); } if (logger.isDebugEnabled()) { logger.debug("bug 0008864 : modifierAction(ActionModificationDto)"); logger.debug("recuperation de l'action : " + actionModificationDto.getIdAction()); logger.debug("dateCreation = " + (actionAModifier.getDateCreation() != null ? SDF.format(actionAModifier.getDateCreation().getTime()) : "null")); } Agence agence = null; if (actionModificationDto.getAgence() != null && actionModificationDto.getAgence().getIdentifiant() != null) { agence = agenceDao.rechercheAgenceParId(actionModificationDto.getAgence().getIdentifiant()); if (agence == null) { logger.error( "L'agence id = " + actionModificationDto.getAgence().getIdentifiant() + "n'existe pas."); throw new TechnicalException( messageSourceUtil.get(ActionKeyUtil.MESSAGE_ERREUR_ACTION_AGENCE_INEXISTANTE)); } } // Rcupration de la ressource correspondant au commercial (on permet dsormais le changement de ressource mme si existant) Ressource commercial = null; if (actionAModifier.getActionAttribution() != null && actionModificationDto.getRessource() != null && actionModificationDto.getRessource().getIdentifiant() != null) { commercial = ressourceDao .rechercherRessourceParId(actionModificationDto.getRessource().getIdentifiant()); if (commercial == null) { logger.error( "La ressource " + actionModificationDto.getRessource().getIdentifiant() + " n'existe pas"); throw new BusinessException( messageSourceUtil.get(ActionKeyUtil.MESSAGE_ERREUR_ACTION_COMMERCIAL_INEXISTANTE)); } } // Rcupration de la dure ActionDuree dureeAction = null; if (actionModificationDto.getIdDuree() != null) { dureeAction = actionDureeDao.rechercherDureeActionParId(actionModificationDto.getIdDuree()); if (dureeAction == null) { throw new BusinessException( messageSourceUtil.get(ActionKeyUtil.MESSAGE_ERREUR_ACTION_DUREE_INEXISTANTE)); } } final RapportDto rapport = new RapportDto(); // Vrification de la nature if (actionModificationDto.getNatureAction() == null || actionModificationDto.getNatureAction().getIdentifiant() == null) { rapport.ajoutRapport(ActionModificationDto.class.getSimpleName() + ".nature", messageSourceUtil.get(ActionKeyUtil.MESSAGE_ERREUR_ACTION_NATURE_ACTION_NULL), true); } // Pour une action de nature "tlphone sortant" passant au statut "termin" if (actionModificationDto.getNatureAction() != null && squareMappingService.getIdNatureActionTelephoneSortant() .equals(actionModificationDto.getNatureAction().getIdentifiant()) && actionModificationDto.getStatut() != null && squareMappingService.getIdStatutActionTermine() .equals(actionModificationDto.getStatut().getIdentifiant())) { // On vrifie que le rsultat de la nature est renseign if (actionModificationDto.getNatureResultat() == null || actionModificationDto.getNatureResultat().getIdentifiant() == null) { rapport.ajoutRapport(ActionModificationDto.class.getSimpleName() + ".natureResultat", messageSourceUtil.get(ActionKeyUtil.MESSAGE_ERREUR_ACTION_NATURE_RESULTAT_ACTION_NULL), true); } } // vrification que la nature de resultat est selectionne pour la nature d'action visite sortante si on demande la vrification if (!BooleanUtils.isFalse(actionModificationDto.getVerifierResultatNatureAction()) && actionModificationDto.getNatureAction() != null && squareMappingService.getIdNatureActionVisiteSortante() .equals(actionModificationDto.getNatureAction().getIdentifiant()) && actionModificationDto.getNatureResultat() == null && squareMappingService .getIdStatutActionTermine().equals(actionModificationDto.getStatut().getIdentifiant())) { throw new BusinessException( messageSourceUtil.get(ActionKeyUtil.MESSAGE_ERREUR_ACTION_NATURE_RESULTAT_VISITE_SORTANTE)); } // Contrle du statut final ValidationExpressionProp[] propsAction = new ValidationExpressionProp[] { new ValidationExpressionProp("statut", null, messageSourceUtil.get(ActionKeyUtil.MESSAGE_ERREUR_ACTION_STATUT_NULL)), new ValidationExpressionProp("dateAction", null, messageSourceUtil.get(ActionKeyUtil.MESSAGE_ERREUR_ACTION_DATE_ACTION_NULL)) }; validationExpressionUtil.verifierSiVide(rapport, actionModificationDto, propsAction); if (actionModificationDto.getDateAction() != null) { // On copie la date de l'action enregistre en base final Calendar ancienneDateAction = DateUtils.truncate((Calendar) actionAModifier.getDate().clone(), Calendar.HOUR); // On copie la nouvelle date d'action final Calendar nouvelleDateAction = DateUtils .truncate((Calendar) actionModificationDto.getDateAction().clone(), Calendar.HOUR); // Si la date de l'action est modifie if (!ancienneDateAction.equals(nouvelleDateAction)) { // On vrifie que la date d'action est postrieure la date courante if (DateUtils.truncate(nouvelleDateAction, Calendar.DAY_OF_MONTH) .before(DateUtils.truncate(Calendar.getInstance(), Calendar.DAY_OF_MONTH))) { rapport.ajoutRapport(actionModificationDto.getClass().getSimpleName() + ".dateAction", messageSourceUtil.get(ActionKeyUtil.MESSAGE_ERREUR_ACTION_DATE_ACTION_INVALIDE), true); } } } // Une action ne peut tre termine sans tre attribue if (actionModificationDto.getStatut() != null && squareMappingService.getIdStatutActionTermine() .equals(actionModificationDto.getStatut().getIdentifiant()) && (actionModificationDto.getRessource() == null || actionModificationDto.getRessource().getIdentifiant() == null)) { rapport.ajoutRapport(ActionModificationDto.class.getSimpleName() + ".statut", messageSourceUtil.get(ActionKeyUtil.MESSAGE_ERREUR_ACTION_TERMINEE_SANS_ATTRIBUTION), true); } // On ne peut rendre visible une action dans l'agenda que si elle a une date de dbut, une dure if (actionModificationDto.getVisibleAgenda() != null && actionModificationDto.getVisibleAgenda().booleanValue() && (actionModificationDto.getDateAction() == null || actionModificationDto.getIdDuree() == null)) { rapport.ajoutRapport(actionModificationDto.getClass().getSimpleName() + ".isVisibleAgenda", messageSourceUtil.get(ActionKeyUtil.MESSAGE_ERREUR_ACTION_IMPOSSIBLE_VISIBLE_AGENDA), true); } // Prsence d'erreurs empchant la modification de l'action if (rapport.getEnErreur()) { // On retourne le rapport d'erreur RapportUtil.logRapport(rapport, logger); throw new ControleIntegriteException(rapport); } // Vrification de l'existance des nouveaux champs verificationExistanceModification(actionModificationDto, actionAModifier); // Vrification de la rgle de gestion de l'opportunit en cours if (Boolean.TRUE.equals(actionModificationDto.getVerifierRegleGestionOpportuniteEnCours())) { verifierRegleGestionOpportuniteOuverte(actionModificationDto, actionAModifier); } // Modification de l'action if (actionModificationDto.getNatureAction() != null && actionModificationDto.getNatureAction().getIdentifiant() != null) { final ActionNature nature = actionNatureDao .rechercherNatureActionParId(actionModificationDto.getNatureAction().getIdentifiant()); if (nature == null) { throw new TechnicalException( messageSourceUtil.get(ActionKeyUtil.MESSAGE_ERREUR_ACTION_NATURE_ACTION_INEXISTANT)); } actionAModifier.setNature(nature); } // modification du type d'action final IdentifiantLibelleDto typeAction = actionModificationDto.getTypeAction(); if (actionModificationDto.getTypeAction() != null && typeAction.getIdentifiant() != null) { actionAModifier.setType(actionTypeDao.rechercherTypeActionParId(typeAction.getIdentifiant())); } // modificatio de l'objet d'action final IdentifiantLibelleDto objetAction = actionModificationDto.getObjetAction(); if (actionModificationDto.getObjetAction() != null && objetAction.getIdentifiant() != null) { actionAModifier.setObjet(actionObjetDao.rechercherObjetActionParId(objetAction.getIdentifiant())); } // affectation au pot commun if (actionModificationDto.getAffectationPotCommun() != null && actionModificationDto.getAffectationPotCommun()) { actionAModifier.getActionAttribution() .setAgence(agenceDao.rechercheAgenceParId(squareMappingService.getIdentifiantAgenceFrance())); actionAModifier.getActionAttribution().setRessource(null); } if (actionModificationDto.getRappelMail() != null) { actionAModifier.setMailNotification(actionModificationDto.getRappelMail()); } // action tlphone sortant ou visite sortante if (actionModificationDto.getNatureAction() != null && (squareMappingService.getIdNatureActionTelephoneSortant() .equals(actionModificationDto.getNatureAction().getIdentifiant()) || squareMappingService.getIdNatureActionVisiteSortante() .equals(actionModificationDto.getNatureAction().getIdentifiant()))) { if (actionModificationDto.getNatureResultat() != null && actionModificationDto.getNatureResultat().getIdentifiant() != null) { actionAModifier.setNatureResultat(actionNatureResultatDao.rechercherNatureResultatActionById( actionModificationDto.getNatureResultat().getIdentifiant())); } else { actionAModifier.setNatureResultat(null); } } if (agence != null) { // si on affecte une action de relance (qui n'avait pas d'agence) une agence, on affecte aussi l'opp l'agence if (actionAModifier.getActionAttribution().getAgence() == null && actionAModifier.getType().getId().equals(squareMappingService.getIdTypeActionRelance()) && actionAModifier.getActionAffectation().getOpportunite() != null) { actionAModifier.getActionAffectation().getOpportunite().getOpportuniteAttribution() .setAgence(agence); } actionAModifier.getActionAttribution().setAgence(agence); } if (commercial != null) { // si on affecte une action de relance (qui n'avait pas de ressource) une ressource, on affecte aussi l'opp la ressource if (actionAModifier.getActionAttribution().getRessource() == null && actionAModifier.getType().getId().equals(squareMappingService.getIdTypeActionRelance()) && actionAModifier.getActionAffectation().getOpportunite() != null) { actionAModifier.getActionAffectation().getOpportunite().getOpportuniteAttribution() .setRessource(commercial); } actionAModifier.getActionAttribution().setRessource(commercial); } final Long idStatutTermine = squareMappingService.getIdStatutTerminer(); // Rsultat // Cration d'une opportunit si le rsultat passe opportunit OpportuniteDto opportuniteCree = null; if (actionAModifier.getResultat() == null) { if (actionModificationDto.getResultat() != null && actionModificationDto.getResultat().getIdentifiant() .equals(squareMappingService.getIdResultatOpportunite())) { actionAModifier.setStatut(actionStatutDao.rechercherStatutActionParId(idStatutTermine)); opportuniteCree = creationOpportunite(actionAModifier); } else if (actionModificationDto.getResultat() != null && actionModificationDto.getResultat() .getIdentifiant().equals(squareMappingService.getIdResultatRelance())) { actionAModifier.setStatut(actionStatutDao.rechercherStatutActionParId(idStatutTermine)); } else { actionAModifier.setStatut(actionStatutDao .rechercherStatutActionParId(actionModificationDto.getStatut().getIdentifiant())); } if (actionModificationDto.getResultat() != null) { actionAModifier.setResultat(actionResultatDao .rechercherActionResultatParId(actionModificationDto.getResultat().getIdentifiant())); } } else { if (actionModificationDto.getResultat() != null && actionModificationDto.getResultat().getIdentifiant() .equals(squareMappingService.getIdResultatOpportunite())) { if (!actionAModifier.getResultat().getId() .equals(squareMappingService.getIdResultatOpportunite())) { actionAModifier.setStatut(actionStatutDao.rechercherStatutActionParId(idStatutTermine)); opportuniteCree = creationOpportunite(actionAModifier); } } else if (actionModificationDto.getResultat() != null && actionModificationDto.getResultat() .getIdentifiant().equals(squareMappingService.getIdResultatRelance())) { actionAModifier.setStatut(actionStatutDao.rechercherStatutActionParId(idStatutTermine)); } else { actionAModifier.setStatut(actionStatutDao .rechercherStatutActionParId(actionModificationDto.getStatut().getIdentifiant())); } if (actionModificationDto.getResultat() != null) { actionAModifier.setResultat(actionResultatDao .rechercherActionResultatParId(actionModificationDto.getResultat().getIdentifiant())); } } // Mise jour de la date de l'action if (idStatutTermine.equals(actionModificationDto.getStatut().getIdentifiant())) { // Si l'action passe au statut "termin", on met jour la date termine de l'action en prenant la date courante actionAModifier.setDateTerminee(Calendar.getInstance()); } else { actionAModifier.setDate(actionModificationDto.getDateAction()); } // Priorit if (actionModificationDto.getPriorite() != null && actionModificationDto.getPriorite().getIdentifiant() != null) { // Rcupration de la priorit final ActionPriorite priorite = actionPrioriteDao .rechercherPrioriteActionParId(actionModificationDto.getPriorite().getIdentifiant()); if (priorite != null) { actionAModifier.setPriorite(priorite); } } // Dure de l'action if (dureeAction != null) { actionAModifier.setDuree(dureeAction); } // Action visible ou non dans l'agenda actionAModifier.setVisibleAgenda(actionModificationDto.getVisibleAgenda() != null && actionModificationDto.getVisibleAgenda().booleanValue()); // Construction de la date de notification if (actionModificationDto.getRappel() != null && actionModificationDto.getRappel()) { if (actionModificationDto.getIdNotification() != null) { final ActionNotificationInfosDto notification = squareMappingService .getActionNotificationParId(actionModificationDto.getIdNotification()); final Calendar soustraction = Calendar.getInstance(); soustraction.clear(); final Long dateTime = -notification.getNotification().getTimeInMillis() + actionAModifier.getDate().getTimeInMillis(); soustraction.setTimeInMillis(dateTime); actionAModifier.setDateNotification(soustraction); } else { actionAModifier.setDateNotification(null); } } else { actionAModifier.setDateNotification(null); } // Constuction du commentaire if (actionModificationDto.getCommentaire() != null) { final Commentaire commentaire = mapperDozerBean.map(actionModificationDto.getCommentaire(), Commentaire.class); if (actionModificationDto.getCommentaire().getRessource() != null) { final Ressource ressource = ressourceDao .rechercherRessourceParId(actionModificationDto.getCommentaire().getRessource().getId()); commentaire.setRessource(ressource); } if (actionAModifier.getCommentaires() == null) { final List<Commentaire> list = new ArrayList<Commentaire>(); list.add(commentaire); actionAModifier.setCommentaires(list); } else { actionAModifier.getCommentaires().add(commentaire); } } // Envoi d'un email si demand if (actionAModifier.isMailNotification() && squareMappingService.getIdStatutActionTermine().equals(actionAModifier.getStatut().getId())) { if (actionAModifier.getRessource() != null) { final Ressource createur = actionAModifier.getRessource(); if (createur.getEmail() == null || "".equals(createur.getEmail())) { throw new BusinessException( messageSourceUtil.get(ActionKeyUtil.MESSAGE_ERREUR_EMAIL_CREATEUR_ACTION_VIDE)); } final List<String> listeDestinataires = new ArrayList<String>(); listeDestinataires.add(createur.getEmail()); final String titre = messageSourceUtil.get(ActionKeyUtil.TITRE_EMAIL_FIN_ACTION); String personneAction = ""; String type = ""; String objet = ""; String sousObjet = ""; String nature = ""; String campagne = ""; if (actionAModifier.getActionAffectation() != null && actionAModifier.getActionAffectation().getPersonne() != null) { final Personne personne = actionAModifier.getActionAffectation().getPersonne(); if (personne instanceof PersonnePhysique) { final PersonnePhysique personnePhysique = (PersonnePhysique) actionAModifier .getActionAffectation().getPersonne(); personneAction = personnePhysique.getNom() + ESPACE + personnePhysique.getPrenom(); } else if (personne instanceof PersonneMorale) { final PersonneMorale personneMorale = (PersonneMorale) actionAModifier .getActionAffectation().getPersonne(); personneAction = personneMorale.getRaisonSociale(); } } if (actionAModifier.getType() != null) { type = actionAModifier.getType().getLibelle(); } if (actionAModifier.getObjet() != null) { objet = actionAModifier.getObjet().getLibelle(); } if (actionAModifier.getSousObjet() != null) { sousObjet = actionAModifier.getSousObjet().getLibelle(); } if (actionAModifier.getNature() != null) { nature = actionAModifier.getNature().getLibelle(); } if (actionAModifier.getCampagne() != null) { campagne = actionAModifier.getCampagne().getLibelle(); } final String message = messageSourceUtil.get(ActionKeyUtil.MESSAGE_EMAIL_FIN_ACTION, new String[] { personneAction, type, objet, sousObjet, nature, campagne }); final MailDto mailDto = new MailDto(expediteurNoReply, listeDestinataires, titre, message, null, false); emailSquarePlugin.envoyerEmail(mailDto); } } // Renseignement de la date de modification actionAModifier.setDateModification(Calendar.getInstance()); final ActionResultatDto resultat = new ActionResultatDto(); if (opportuniteCree != null) { resultat.setIdOpportunite(opportuniteCree.getIdOpportunite()); } return resultat; }
From source file:com.cloud.template.TemplateManagerImpl.java
@DB @Override// www .ja v a2 s . c o m public boolean updateTemplateOrIsoPermissions(BaseUpdateTemplateOrIsoPermissionsCmd cmd) { // Input validation final Long id = cmd.getId(); final Account caller = CallContext.current().getCallingAccount(); List<String> accountNames = cmd.getAccountNames(); List<Long> projectIds = cmd.getProjectIds(); Boolean isFeatured = cmd.isFeatured(); Boolean isPublic = cmd.isPublic(); Boolean isExtractable = cmd.isExtractable(); String operation = cmd.getOperation(); String mediaType = ""; VMTemplateVO template = _tmpltDao.findById(id); if (template == null) { throw new InvalidParameterValueException("unable to find " + mediaType + " with id " + id); } if (cmd instanceof UpdateTemplatePermissionsCmd) { mediaType = "template"; if (template.getFormat().equals(ImageFormat.ISO)) { throw new InvalidParameterValueException("Please provide a valid template"); } } if (cmd instanceof UpdateIsoPermissionsCmd) { mediaType = "iso"; if (!template.getFormat().equals(ImageFormat.ISO)) { throw new InvalidParameterValueException("Please provide a valid iso"); } } // convert projectIds to accountNames if (projectIds != null) { // CS-17842, initialize accountNames list if (accountNames == null) { accountNames = new ArrayList<String>(); } for (Long projectId : projectIds) { Project project = _projectMgr.getProject(projectId); if (project == null) { throw new InvalidParameterValueException("Unable to find project by id " + projectId); } if (!_projectMgr.canAccessProjectAccount(caller, project.getProjectAccountId())) { throw new InvalidParameterValueException( "Account " + caller + " can't access project id=" + projectId); } accountNames.add(_accountMgr.getAccount(project.getProjectAccountId()).getAccountName()); } } //_accountMgr.checkAccess(caller, AccessType.ModifyEntry, true, template); _accountMgr.checkAccess(caller, AccessType.OperateEntry, true, template); //TODO: should we replace all ModifyEntry as OperateEntry? // If the template is removed throw an error. if (template.getRemoved() != null) { s_logger.error( "unable to update permissions for " + mediaType + " with id " + id + " as it is removed "); throw new InvalidParameterValueException( "unable to update permissions for " + mediaType + " with id " + id + " as it is removed "); } if (id.equals(Long.valueOf(1))) { throw new InvalidParameterValueException( "unable to update permissions for " + mediaType + " with id " + id); } boolean isAdmin = _accountMgr.isAdmin(caller.getId()); // check configuration parameter(allow.public.user.templates) value for // the template owner boolean allowPublicUserTemplates = AllowPublicUserTemplates.valueIn(template.getAccountId()); if (!isAdmin && !allowPublicUserTemplates && isPublic != null && isPublic) { throw new InvalidParameterValueException("Only private " + mediaType + "s can be created."); } if (accountNames != null) { if ((operation == null) || (!operation.equalsIgnoreCase("add") && !operation.equalsIgnoreCase("remove") && !operation.equalsIgnoreCase("reset"))) { throw new InvalidParameterValueException( "Invalid operation on accounts, the operation must be either 'add' or 'remove' in order to modify launch permissions." + " Given operation is: '" + operation + "'"); } } Long ownerId = template.getAccountId(); if (ownerId == null) { // if there is no owner of the template then it's probably already a // public template (or domain private template) so // publishing to individual users is irrelevant throw new InvalidParameterValueException( "Update template permissions is an invalid operation on template " + template.getName()); } //Only admin or owner of the template should be able to change its permissions if (caller.getId() != ownerId && !isAdmin) { throw new InvalidParameterValueException("Unable to grant permission to account " + caller.getAccountName() + " as it is neither admin nor owner or the template"); } VMTemplateVO updatedTemplate = _tmpltDao.createForUpdate(); if (isPublic != null) { updatedTemplate.setPublicTemplate(isPublic.booleanValue()); } if (isFeatured != null) { updatedTemplate.setFeatured(isFeatured.booleanValue()); } if (isExtractable != null) { // Only Root admins allowed to change it for templates if (!template.getFormat().equals(ImageFormat.ISO) && !_accountMgr.isRootAdmin(caller.getId())) { throw new InvalidParameterValueException( "Only ROOT admins are allowed to modify isExtractable attribute."); } else { // For Isos normal user can change it, as their are no derivatives. updatedTemplate.setExtractable(isExtractable.booleanValue()); } } _tmpltDao.update(template.getId(), updatedTemplate); //when operation is add/remove, accountNames can not be null if (("add".equalsIgnoreCase(operation) || "remove".equalsIgnoreCase(operation)) && accountNames == null) { throw new InvalidParameterValueException( "Operation " + operation + " requires accounts or projectIds to be passed in"); } //Derive the domain id from the template owner as updateTemplatePermissions is not cross domain operation Account owner = _accountMgr.getAccount(ownerId); final Domain domain = _domainDao.findById(owner.getDomainId()); if ("add".equalsIgnoreCase(operation)) { final List<String> accountNamesFinal = accountNames; final List<Long> accountIds = new ArrayList<Long>(); Transaction.execute(new TransactionCallbackNoReturn() { @Override public void doInTransactionWithoutResult(TransactionStatus status) { for (String accountName : accountNamesFinal) { Account permittedAccount = _accountDao.findActiveAccount(accountName, domain.getId()); if (permittedAccount != null) { if (permittedAccount.getId() == caller.getId()) { continue; // don't grant permission to the template // owner, they implicitly have permission } accountIds.add(permittedAccount.getId()); LaunchPermissionVO existingPermission = _launchPermissionDao .findByTemplateAndAccount(id, permittedAccount.getId()); if (existingPermission == null) { LaunchPermissionVO launchPermission = new LaunchPermissionVO(id, permittedAccount.getId()); _launchPermissionDao.persist(launchPermission); } } else { throw new InvalidParameterValueException( "Unable to grant a launch permission to account " + accountName + " in domain id=" + domain.getUuid() + ", account not found. " + "No permissions updated, please verify the account names and retry."); } } } }); // add ACL permission in IAM Map<String, Object> permit = new HashMap<String, Object>(); permit.put(ApiConstants.ENTITY_TYPE, VirtualMachineTemplate.class); permit.put(ApiConstants.ENTITY_ID, id); permit.put(ApiConstants.ACCESS_TYPE, AccessType.UseEntry); permit.put(ApiConstants.IAM_ACTION, "listTemplates"); permit.put(ApiConstants.ACCOUNTS, accountIds); _messageBus.publish(_name, EntityManager.MESSAGE_GRANT_ENTITY_EVENT, PublishScope.LOCAL, permit); } else if ("remove".equalsIgnoreCase(operation)) { List<Long> accountIds = new ArrayList<Long>(); for (String accountName : accountNames) { Account permittedAccount = _accountDao.findActiveAccount(accountName, domain.getId()); if (permittedAccount != null) { accountIds.add(permittedAccount.getId()); } } _launchPermissionDao.removePermissions(id, accountIds); // remove ACL permission in IAM Map<String, Object> permit = new HashMap<String, Object>(); permit.put(ApiConstants.ENTITY_TYPE, VirtualMachineTemplate.class); permit.put(ApiConstants.ENTITY_ID, id); permit.put(ApiConstants.ACCESS_TYPE, AccessType.UseEntry); permit.put(ApiConstants.IAM_ACTION, "listTemplates"); permit.put(ApiConstants.ACCOUNTS, accountIds); _messageBus.publish(_name, EntityManager.MESSAGE_REVOKE_ENTITY_EVENT, PublishScope.LOCAL, permit); } else if ("reset".equalsIgnoreCase(operation)) { // do we care whether the owning account is an admin? if the // owner is an admin, will we still set public to false? updatedTemplate = _tmpltDao.createForUpdate(); updatedTemplate.setPublicTemplate(false); updatedTemplate.setFeatured(false); _tmpltDao.update(template.getId(), updatedTemplate); _launchPermissionDao.removeAllPermissions(id); _messageBus.publish(_name, TemplateManager.MESSAGE_RESET_TEMPLATE_PERMISSION_EVENT, PublishScope.LOCAL, template.getId()); } return true; }
From source file:jp.co.opentone.bsol.linkbinder.view.correspon.CorresponIndexPage.java
/** * CorresponType??./*w w w .j a va 2s.c om*/ * @param id CorresponTypeId * @return CorresponType */ private String getViewCorresponType(Long id) { if (id != null) { for (CorresponType c : typeList) { if (id.equals(c.getProjectCorresponTypeId())) { return c.getCorresponType(); } } return SystemConfig.getValue(KEY_UNKNOWN_TXT); } return null; }