- if($data->check_user_uploads_dir())
- { $web_path = $env->path("web");
- $_SESSION["upload_dir"] = $web_path.($web_path ? "" : "/").$env->path("content")."uploads/".$this->user["id"];
- if(($compositions = $data->source_compositions(array("id_source" => $this->morceau["id"]))) !== false)
- { if($compositions) foreach($compositions[$this->morceau["id"]] as $id_album) { $this->morceau["album"] = $id_album; break; }
- $env->set_out("groupe", $data->get_admin_groupe($this->morceau["groupes"]));
- if($_POST)
- { $source_infos = array
- ( "date_inscription" => $_POST["date_inscription"],
- "ordre" => isset($this->morceau["ordre"]) ? $this->morceau["ordre"] : 0
- );
- $this->morceau = $data->empty_source(array("id" => $this->morceau["id"]));
- $users_sources_mod = $env->get_controller("users/sources");
- if(!($groupe = $data->groupe($_POST["id_groupe"])))
- { $env->erreur("Impossible de lire les informations du groupe");
+ if(($licences = $data->licences()) === false){
+ $env->erreur("Impossible de lire la liste des licences");
+ return;
+ }
+ if(($sources_access = $data->sources_access()) === false){
+ $env->erreur("Impossible de lire les types d'access");
+ return;
+ }
+ if(!($morceau = $data->source($_GET[$env->param("id")], true))){
+ $env->erreur("Impossible de lire les informations du morceau");
+ return;
+ }
+ $morceau["permissions"] = $data->source_permissions($morceau, $this->user["id"]);
+ if(!$morceau["permissions"]["editeur"]){
+ $env->erreur("vous n'avez pas la permission d'editer ce morceau");
+ return;
+ }
+ if(
+ (
+ $albums = $data->groupes_sources(
+ array(
+ "groupes" => $morceau["groupes"],
+ "id_class" => $this->album_status_id,
+ // on veut les albums pour lesquels chaque groupe du morceau ...
+ "satisfy_all_groupes_access" => true,
+ // ... a le droit de contribution
+ "id_source_access" => $data->id_groupe_status_contributeur()
+ )
+ )
+ ) === false
+ ) return "impossible de lire la liste des albums";
+ if(!$data->check_user_uploads_dir()){
+ $env->erreur("Impossible de creer le repertoire utilisateur");
+ return;
+ }
+ $web_path = $env->path("web");
+ $upload_dir = $env->path("content")."uploads/".$this->user["id"];
+ $_SESSION["upload_dir"] = $web_path.($web_path ? "" : "/").$env->path("content")."uploads/".$this->user["id"];
+ if(($compositions = $data->source_compositions(array("id_source" => $morceau["id"]))) === false){
+ $env->erreur("Impossible de lire la liste des compositions");
+ return;
+ }
+ if($compositions) foreach($compositions[$morceau["id"]] as $id_album) { $morceau["album"] = $id_album; break; }
+ if($_POST){
+ $source_infos = array(
+ "date_inscription" => $_POST["date_inscription"],
+ "ordre" => isset($morceau["ordre"]) ? $morceau["ordre"] : 0
+ );
+ $morceau = $data->empty_source(
+ array(
+ "id" => $morceau["id"],
+ "groupes" => $morceau["groupes"],
+ "image" => isset($morceau["image"]) ? $morceau["image"] : ""
+ )
+ );
+ $users_sources_mod = $env->get_controller("users/sources");
+ if($_POST["album"]){
+ if($album = $data->source($_POST["album"], true)){
+ $album["permissions"] = $data->source_permissions($album, $this->user["id"]);
+ if(!$album["permissions"]["contributeur"]){
+ $env->erreur("vous n'avez pas la permission d'ajouter un morceau dans cet album");