Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 1689 → Rev 1690

/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/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/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/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/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/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 ".