/trunk/src/org/tela_botanica/del/client/utils/UtilitairesServiceResultat.java |
---|
469,7 → 469,11 |
String nomUtilisateur = utilisateurJson.get("nom").isString().stringValue(); |
String prenomUtilisateur = utilisateurJson.get("prenom").isString().stringValue(); |
String mdpHashUtilisateur = utilisateurJson.get("mot_de_passe").isString().stringValue(); |
String adminNiveau = utilisateurJson.get("admin").isString().stringValue(); |
String adminNiveau = ""; |
if (utilisateurJson.get("admin").isString() != null) { |
adminNiveau = utilisateurJson.get("admin").isString().stringValue(); |
} |
utilisateur = new Utilisateur(sessionId, idUtilisateur, prenomUtilisateur, nomUtilisateur, |
courrielUtilisateur, mdpHashUtilisateur, adminNiveau); |
/trunk/src/org/tela_botanica/del/client/vues/pictoflora/resultats/images/ImagePresenteur.java |
---|
243,9 → 243,7 |
public void onSuppressionImage(EvenementSupprimerImage event) { |
GWT.log("Attraper evnt : EvenementSupprimerImage (img:"+image.getIdImage()+")"); |
if (event.getIdImage().equals(image.getIdImage())) { |
if (Window.confirm(I18n.getVocabulary().confirmationSuppressionImg())) { |
supprimerImg(); |
} |
supprimerImg(); |
} |
} |
}); |
253,7 → 251,9 |
@Override |
public void onClick(ClickEvent event) { |
GWT.log("Lancer evnt : EvenementSupprimerImage"); |
BusEvenementiel.getInstance().fireEvent(new EvenementSupprimerImage(image.getIdImage())); |
if (Window.confirm(I18n.getVocabulary().confirmationSuppressionImg())) { |
BusEvenementiel.getInstance().fireEvent(new EvenementSupprimerImage(image.getIdImage())); |
} |
} |
}); |
267,16 → 267,18 |
} |
private void supprimerImg() { |
GWT.log("supprimerImg :"+image.getIdImage()); |
imageService.supprimer(image, new SuppressionImageCallback() { |
@Override |
public void surRetour(String suppressionOk) { |
GWT.log("Suppression image "+image.getIdImage()+" "+suppressionOk); |
if (suppressionOk.equals("OK")) { |
vue.asWidget().removeFromParent(); |
if (avoirUtilisateurAdmin()) { |
GWT.log("supprimerImg :"+image.getIdImage()); |
imageService.supprimer(image, new SuppressionImageCallback() { |
@Override |
public void surRetour(String suppressionOk) { |
GWT.log("Suppression image "+image.getIdImage()+" "+suppressionOk); |
if (suppressionOk.equals("OK")) { |
vue.asWidget().removeFromParent(); |
} |
} |
} |
}); |
}); |
} |
} |
protected void afficherPanneauMotsCles() { |
314,7 → 316,7 |
} |
private void afficherZoneActionsImage() { |
if (devoirAfficherZoneActionsImage()) { |
if (avoirUtilisateurAdmin()) { |
vue.afficherZoneActionsImage(); |
} else { |
vue.cacherZoneActionsImage(); |
321,7 → 323,7 |
} |
} |
private boolean devoirAfficherZoneActionsImage() { |
private boolean avoirUtilisateurAdmin() { |
Utilisateur utilisateur = CacheClient.getInstance().getUtilisateur(); |
boolean etreAdmin = false; |
if (utilisateur != null) { |
/trunk/src/org/tela_botanica/del/client/vues/identiplante/plateformedetermination/IdentiplanteDeterminationVue.ui.xml |
---|
10,7 → 10,9 |
<g:HTMLPanel styleName="limiteMax"> |
<g:HTMLPanel styleName="{style.limiteZoneMenu}"> |
<g:Hyperlink ui:field="lienRetour" styleName="lienRetour">Retour</g:Hyperlink> |
<g:Button ui:field="btnDepublierObs" text="{constants.depublierObs}" styleName="droite bouton {style.btnDepublierObs}" /> |
<g:HTMLPanel ui:field="zoneActionsObs"> |
<g:Button ui:field="btnDepublierObs" text="{constants.depublierObs}" styleName="droite bouton {style.btnDepublierObs}" /> |
</g:HTMLPanel> |
</g:HTMLPanel> |
<g:HTMLPanel styleName="{style.limiteZoneMetadonnees}"> |
<g:HTMLPanel ui:field="metadonnees" styleName="{style.metadonnees}" /> |
/trunk/src/org/tela_botanica/del/client/vues/identiplante/plateformedetermination/IdentiplanteDeterminationPresenteur.java |
---|
13,13 → 13,10 |
import org.tela_botanica.del.client.composants.metadonnees.MetadonneesPresenteur; |
import org.tela_botanica.del.client.composants.observations.ObservationImagesPresenteur; |
import org.tela_botanica.del.client.composants.observations.ObservationImagesVue; |
import org.tela_botanica.del.client.composants.partageurl.PartageUrlPresenteur; |
import org.tela_botanica.del.client.composants.partageurl.PartageUrlVue; |
import org.tela_botanica.del.client.composants.presenteur.Presenteur; |
import org.tela_botanica.del.client.composants.rss.RssPresenteur; |
import org.tela_botanica.del.client.composants.rss.RssVue; |
import org.tela_botanica.del.client.config.Config; |
import org.tela_botanica.del.client.gestionhistorique.ConstantesNavigation; |
import org.tela_botanica.del.client.i18n.I18n; |
import org.tela_botanica.del.client.modeles.Image; |
import org.tela_botanica.del.client.modeles.ModeRecherche; |
40,7 → 37,6 |
import org.tela_botanica.del.client.navigation.evenement.changementimagevalidation.GestionnaireEvenementChangementImageValidation; |
import org.tela_botanica.del.client.navigation.evenement.depublierObs.EvenementDepublierObs; |
import org.tela_botanica.del.client.navigation.evenement.depublierObs.GestionnaireEvenementDepublierObs; |
import org.tela_botanica.del.client.navigation.evenement.supprimerImage.EvenementSupprimerImage; |
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.EvenementVoteDetermination; |
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.GestionnaireEvenementVoteDetermination; |
import org.tela_botanica.del.client.services.CalculVoteDeterminationService; |
49,7 → 45,6 |
import org.tela_botanica.del.client.services.rest.PropositionDeterminationServiceConcret; |
import org.tela_botanica.del.client.services.rest.async.DepublicationObservationCallBack; |
import org.tela_botanica.del.client.services.rest.async.ObservationsCallback; |
import org.tela_botanica.del.client.services.rest.async.SuppressionImageCallback; |
import org.tela_botanica.del.client.services.rest.async.ValidationPropositionCallback; |
import org.tela_botanica.del.client.utils.URLUtils; |
import org.tela_botanica.del.client.navigation.evenement.rechercheobservation.EvenementRechercheObservation; |
110,6 → 105,10 |
void afficherBoutonValidationTaxon(); |
public void viderMetadonnees(); |
void afficherZoneActionsObs(); |
void cacherZoneActionsObs(); |
} |
private Observation observation; |
160,6 → 159,7 |
Window.alert(messageErreur + " - l'identifiant d'observation est incorrect; l'observation a peut-être été supprimée"); |
} |
}); |
afficherZoneActionsObs(); |
gererEvenements(); |
} |
307,7 → 307,9 |
@Override |
public void onClick(ClickEvent event) { |
GWT.log("Lancer evnt : EvenementDepublierObs"); |
BusEvenementiel.getInstance().fireEvent(new EvenementDepublierObs(observation.getId())); |
if (Window.confirm(I18n.getVocabulary().confirmationDepublicationObs())) { |
BusEvenementiel.getInstance().fireEvent(new EvenementDepublierObs(observation.getId())); |
} |
} |
}); |
316,12 → 318,17 |
public void onDepublicationObs(EvenementDepublierObs event) { |
GWT.log("Attraper evnt : EvenementDepublierObs (obs:"+event.getIdObs()+")"); |
if (event.getIdObs().equals(observation.getId())) { |
if (Window.confirm(I18n.getVocabulary().confirmationDepublicationObs())) { |
depublierObs(); |
} |
depublierObs(); |
} |
} |
}); |
BusEvenementiel.getInstance().addHandler(EvenementChangementEtatUtilisateur.TYPE, new GestionnaireEvenementChangementEtatUtilisateur() { |
@Override |
public void onModificationEtatUtilisateur(EvenementChangementEtatUtilisateur evenementChangementEtatUtilisateur) { |
afficherZoneActionsObs(); |
} |
}); |
} |
private void validerPropositionPlusPopulaire() { |
349,16 → 356,35 |
} |
private void depublierObs() { |
GWT.log("depublierObs :"+observation.getId()); |
observationService.depublier(observation, new DepublicationObservationCallBack() { |
@Override |
public void surRetour(String depublicationOk) { |
GWT.log("Dépublication obs "+observation.getId()+" "+depublicationOk); |
if (depublicationOk.equals("OK")) { |
BusEvenementiel.getInstance().fireEvent(new EvenementRechercheObservation()); |
if (avoirUtilisateurAdmin()) { |
GWT.log("depublierObs :"+observation.getId()); |
observationService.depublier(observation, new DepublicationObservationCallBack() { |
@Override |
public void surRetour(String depublicationOk) { |
GWT.log("Dépublication obs "+observation.getId()+" "+depublicationOk); |
if (depublicationOk.equals("OK")) { |
BusEvenementiel.getInstance().fireEvent(new EvenementRechercheObservation()); |
} |
} |
} |
}); |
}); |
} |
} |
private void afficherZoneActionsObs() { |
if (avoirUtilisateurAdmin()) { |
vue.afficherZoneActionsObs(); |
} else { |
vue.cacherZoneActionsObs(); |
} |
} |
private boolean avoirUtilisateurAdmin() { |
Utilisateur utilisateur = CacheClient.getInstance().getUtilisateur(); |
boolean etreAdmin = false; |
if (utilisateur != null) { |
etreAdmin = utilisateur.estIdentifie() && utilisateur.etreAdmin(); |
} |
return etreAdmin; |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/identiplante/plateformedetermination/IdentiplanteDeterminationVue.java |
---|
17,7 → 17,7 |
public class IdentiplanteDeterminationVue extends Composite implements IdentiplanteDeterminationPresenteur.Vue { |
@UiField |
Panel forum, detailImageObservation, formulaireRechercheEflore, zoneRss; |
Panel forum, detailImageObservation, formulaireRechercheEflore, zoneRss, zoneActionsObs; |
@UiField |
Label nomTaxonProbable, lienOuvrages, lienEflore, lienBonnier, lienCles; |
130,5 → 130,15 |
public void viderMetadonnees() { |
metadonnees.clear(); |
} |
@Override |
public void cacherZoneActionsObs() { |
zoneActionsObs.setVisible(false); |
} |
@Override |
public void afficherZoneActionsObs() { |
zoneActionsObs.setVisible(true); |
} |
} |
/trunk/services/modules/0.1/images/ListeImages.php |
---|
232,24 → 232,27 |
return $resultat; |
} |
/** |
* Supprime une image directement dans le CEL en faisant un appel à un web service du CEL. |
* Utilisé uniquement par les admins. |
* |
* @param array $ressources tableau des informations contenues dans l'url après le nom du service |
* @param array $parametres contenu du post |
* @return mixed Chaine "OK" (en majuscule) en cas de succès, booléen "false" en cas d'échec |
*/ |
public function supprimer($ressources) { |
$idImage = $ressources[0]; |
$controlAcces = $this->conteneur->getControleAcces(); |
$controlAcces->controlerIpAutorisees(); |
$controlAcces->etreUtilisateurAvecDroitAdmin(); |
$retour = false; |
if ($controlAcces->controlerIpAutorisees()) { |
if ($controlAcces->etreUtilisateurAvecDroitAdmin()) { |
$urlServiceBase = $this->conteneur->getParametre('urlServiceCelImage'); |
$url = $urlServiceBase.$idImage; |
$urlServiceBase = $this->conteneur->getParametre('urlServiceCelImage'); |
$idImage = $ressources[0]; |
$url = $urlServiceBase.$idImage; |
$clientHttp = $this->conteneur->getRestClient(); |
$retour = $clientHttp->supprimer($url); |
} else { |
$message = "Vous ne pouvez pas accéder à ce service car vous n'avez pas les droits d'administrateur !\n"; |
$code = RestServeur::HTTP_CODE_ACCES_NON_AUTORISE; |
throw new Exception($message, $code); |
} |
} |
$clientHttp = $this->conteneur->getRestClient(); |
$retourCel = $clientHttp->supprimer($url); |
$retour = preg_match('/^OK$/i', $retourCel) ? 'OK' : false; |
return $retour; |
} |
/trunk/services/modules/0.1/observations/Observation.php |
---|
366,6 → 366,10 |
* @return mixed Chaine "OK" (en majuscule) en cas de succès, booléen "false" en cas d'échec |
*/ |
public function modifier($ressources, $parametres) { |
$controlAcces = $this->conteneur->getControleAcces(); |
$controlAcces->controlerIpAutorisees(); |
$controlAcces->etreUtilisateurAvecDroitAdmin(); |
$retour = false; |
if (isset($parametres['transmission'])) { |
$idObs = $ressources[0]; |
/trunk/services/bibliotheque/ControleAcces.php |
---|
151,6 → 151,12 |
if (isset($infos['admin'])) { |
$etreAdmin = $this->verifierDroitAdmin($infos['admin']); |
} |
if ($etreAdmin == false) { |
$message = "Vous ne pouvez pas accéder à ce service car vous n'avez pas les droits d'administrateur !\n"; |
$code = RestServeur::HTTP_CODE_ACCES_NON_AUTORISE; |
throw new Exception($message, $code); |
} |
return $etreAdmin; |
} |
167,7 → 173,7 |
private function obtenirUtilisateurSansEncryptionMdp($login, $motDePasseEncrypte) { |
$login = $this->bdd->proteger($login); |
$motDePasseEncrypte = $this->bdd->proteger($motDePasseEncrypte); |
$requete = 'SELECT du.*, dui.* '. |
$requete = 'SELECT du.*, admin, preferences, date_premiere_utilisation '. |
'FROM del_utilisateur AS du '. |
' LEFT JOIN del_utilisateur_infos AS dui ON (du.id_utilisateur = dui.id_utilisateur) '. |
"WHERE du.courriel = $login ". |