$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"])){
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{
}
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;
+ }
+ }
+
?>
<li class="invitation">
title="annuler cette invitation"
onclick="return confirm('annuler cette invitation ?')"/>Annuler l'invitation</a>
</li>
- <?php else : ?>
+ <?php endif; ?>
+ <?php if($IS_INVITED) : ?>
<li>
<a href="<?php echo $this->url("users/sources_invitations/accepter_invitation_groupe", array("id" => $id_invitation)) ?>"
class="admin_link"