X-Git-Url: http://git.dj3c1t.com/?a=blobdiff_plain;f=app%2Fcontrollers%2Fusers%2Fsources_invitations.php;h=a56dd49a78877d676516a9112939b43490640975;hb=HEAD;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..a56dd49 100644 --- a/app/controllers/users/sources_invitations.php +++ b/app/controllers/users/sources_invitations.php @@ -2,14 +2,13 @@ class mw_users_sources_invitations extends mw_controller{ - var $user; + public $user; + public $status; + public $album_status_id; + public $morceau_status_id; + public $piste_status_id; - var $status; - var $album_status_id; - var $morceau_status_id; - var $piste_status_id; - - function validate(){ + public function validate(){ $env = $this->env(); $data = $env->data(); if(($this->status = $data->source_status()) === false){ @@ -34,7 +33,7 @@ return true; } - function index(){ + public function index(){ $env = $this->env(); $data = $env->data(); if(($sources_access = $data->sources_access()) === false){ @@ -45,25 +44,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"]))){ @@ -88,7 +71,7 @@ $env->set_out("status", $this->status); } - function source_groupes(){ + public function source_groupes(){ $env = $this->env(); $data = $env->data(); if(!($source = $data->source($_GET[$env->param("id")], true))){ @@ -108,7 +91,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; } @@ -131,7 +125,7 @@ $env->set_out("invitations", $invitations); } - function invite_groupe(){ + public function invite_groupe(){ $env = $this->env(); $data = $env->data(); if(!($source = $data->source($_GET[$env->param("id")], true))){ @@ -173,7 +167,7 @@ ); } - function annule_invitation_groupe(){ + public function annule_invitation_groupe(){ $env = $this->env(); $data = $env->data(); if(!($invitation = $data->get_sml_sources_invitations("id", $_GET[$env->param("id")]))){ @@ -199,7 +193,7 @@ ); } - function accepter_invitation_groupe(){ + public function accepter_invitation_groupe(){ $env = $this->env(); $data = $env->data(); if(($groupes = $data->groupes($this->user["id"])) === false){ @@ -218,9 +212,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"])){ @@ -237,7 +234,7 @@ ); } - function refuser_invitation_groupe(){ + public function refuser_invitation_groupe(){ $env = $this->env(); $data = $env->data(); if(($groupes = $data->groupes($this->user["id"])) === false){ @@ -266,7 +263,7 @@ ); } - function del_groupe(){ + public function del_groupe(){ $env = $this->env(); $data = $env->data(); if(!($source = $data->source($_GET[$env->param("id")], true))){ @@ -327,5 +324,3 @@ } } - -?> \ No newline at end of file