X-Git-Url: http://git.dj3c1t.com/?a=blobdiff_plain;f=app%2Fcontrollers%2Fusers%2Fsources_invitations.php;h=6691283a38f06a153933f7727bff82eb87fe60c8;hb=refs%2Ftags%2Fsourceml.1.1.0;hp=40f2a2f38eb007a5d10f7016101e84a5121e1791;hpb=11ec67ff3d3f1a9e8da9c58ad0df3bc6e6fe6593;p=mw_sourceml diff --git a/app/controllers/users/sources_invitations.php b/app/controllers/users/sources_invitations.php index 40f2a2f..6691283 100644 --- a/app/controllers/users/sources_invitations.php +++ b/app/controllers/users/sources_invitations.php @@ -45,25 +45,9 @@ $env->erreur("Impossible de lire la liste des groupes"); return; } - $groupes_in = ""; - foreach($groupes["list"] as $id_groupe => $groupe) $groupes_in .= ($groupes_in ? "," : "").$id_groupe; - $invitations = array("list" => array(), "total" => 0); - if($groupes_in){ - if( - ( - $invitations = $data->list_sml_sources_invitations( - array( - "index_name" => "id", - "where"=> "id_author IN(".$groupes_in.") OR id_user=".$this->user["id"], - "order_by" => "date_invitation", - "order" => "DESC" - ) - ) - ) === false - ){ - $env->erreur("Impossible de lire la liste des invitations"); - return; - } + if(($invitations = $data->sources_invitations($groupes["list"], $this->user["id"])) === false){ + $env->erreur("Impossible de lire la liste des invitations"); + return; } foreach($invitations["list"] as $id_invitation => $invitation){ if(!($user = $data->user_by_id($invitation["id_user"]))){ @@ -108,7 +92,18 @@ $env->erreur("Impossible de lire la liste des groupes"); return; } - if(($invitations = $data->list_sml_sources_invitations(array("index_name" => "id", "where"=> "id_source=".$source["id"]))) === false){ + if( + ( + $invitations = $data->list_sml_sources_invitations( + array( + "index_name" => "id", + "filters" => array( + array("id_source", "eq", $source["id"]) + ) + ) + ) + ) === false + ){ $env->erreur("Impossible de lire la liste des invitations pour cette source"); return; } @@ -218,9 +213,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"])){