From: root Date: Sat, 12 Oct 2013 13:20:49 +0000 (+0200) Subject: correction bug invitation quand meme user X-Git-Tag: sourceml.0.16~4 X-Git-Url: http://git.dj3c1t.com/?p=mw_sourceml;a=commitdiff_plain;h=6638b98f6ee00cfd8fdfb5e335c378306dbc280a correction bug invitation quand meme user --- diff --git a/app/controllers/users/sources_invitations.php b/app/controllers/users/sources_invitations.php index 40f2a2f..247c00b 100644 --- a/app/controllers/users/sources_invitations.php +++ b/app/controllers/users/sources_invitations.php @@ -218,9 +218,12 @@ $env->erreur("l'invitation s'adresse a un groupe qui n'appartient pas à votre utilisateur"); return; } - $source["permissions"] = $data->source_permissions($source, $this->user["id"]); - if($source["permissions"]["contributeur"]){ - $env->erreur("vous avez déjà accès à cette source"); + if(($HAS_THIS_GROUP = $data->source_has_groupe($source["id"], $invitation["id_author"])) === false){ + $env->erreur("Impossible de savoir si ce groupe a déjà accès à cette source"); + return; + } + if($HAS_THIS_GROUP){ + $env->erreur("le groupe a déjà accès à cette source"); return; } if(!$data->del_sml_sources_invitations("id", $invitation["id"])){ diff --git a/app/data/modules/sql/sml_data_source_groupes.php b/app/data/modules/sql/sml_data_source_groupes.php index 5008bb8..45d07b1 100644 --- a/app/data/modules/sql/sml_data_source_groupes.php +++ b/app/data/modules/sql/sml_data_source_groupes.php @@ -96,6 +96,22 @@ return $sources; } + function source_has_groupe($id_source, $id_groupe){ + $sgbd = $this->sgbd(); + $HAS_THIS_GROUP = 0; + try{ + $sql = + "SELECT count(*) as n FROM #--sml_sources_authors" + ." WHERE id_source=".$this->eq($id_source) + ." AND id_author=".$this->eq($id_groupe); + $rst = $sgbd->query($sql); + if($v_rst = $sgbd->fetch_assoc($rst)) $HAS_THIS_GROUP = $v_rst["n"]; + $sgbd->free_result($rst); + } + catch(Exception $e) { $HAS_THIS_GROUP = false; } + return $HAS_THIS_GROUP; + } + function add_source_groupe($id_source, $id_groupe, $id_groupe_status) { $sgbd = $this->sgbd(); try{ diff --git a/app/out/default/views/users/sources_invitations/list.php b/app/out/default/views/users/sources_invitations/list.php index c4574c0..44d8b85 100644 --- a/app/out/default/views/users/sources_invitations/list.php +++ b/app/out/default/views/users/sources_invitations/list.php @@ -21,6 +21,14 @@ } else continue; + $IS_INVITED = false; + foreach($this->out["groupes"]["list"] as $groupe){ + if($groupe["id"] == $invitation["id_author"] && $groupe["id_user"] == $this->out["user"]["id"]){ + $IS_INVITED = true; + break; + } + } + ?>
  • @@ -43,7 +51,8 @@ title="annuler cette invitation" onclick="return confirm('annuler cette invitation ?')"/>Annuler l'invitation
  • - + +
  • $id_invitation)) ?>" class="admin_link"