<?php
- class sml_data_source_groupes extends mw_data
- {
+ class sml_data_source_groupes extends mw_data{
- function init_groupe_status(){
+ public function init_groupe_status(){
return true;
}
- function source_groupes($id_source)
- { $env = $this->env();
+ public function source_groupes($id_source){
+ $env = $this->env();
$sgbd = $this->sgbd();
try{
$sql =
." ORDER BY nom";
$rst = $sgbd->query($sql);
$groupes = array();
- while($v_rst = $sgbd->fetch_assoc($rst))
- { $v_rst["image_uri"] =
- ( $v_rst["image"] ?
+ while($v_rst = $sgbd->fetch_assoc($rst)){
+ $v_rst["image_uri"] = (
+ $v_rst["image"] ?
$env->path("content")."uploads/".$v_rst["image"]
: ""
);
}
$sgbd->free_result($rst);
}
- catch(Exception $e) { return false; }
+ catch(Exception $e){
+ return false;
+ }
return $groupes;
}
- function groupes_sources($params){
+ public function groupes_sources($params){
if(!isset($params["groupes"])) return false;
if(!isset($params["id_source_access"])) return false;
$satisfy_all_groupes_access = true;
if(!($sources[$id_source] = $this->load_source($source))) return false;
}
}
- catch(Exception $e) { $sources = false; }
+ catch(Exception $e){
+ $sources = false;
+ }
return $sources;
}
- function add_source_groupe($id_source, $id_groupe, $id_groupe_status)
- { $sgbd = $this->sgbd();
+ public 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;
+ }
+
+ public function add_source_groupe($id_source, $id_groupe, $id_groupe_status){
+ $sgbd = $this->sgbd();
try{
$sql =
"INSERT INTO #--sml_sources_authors(id_source, id_author, id_sources_access) VALUES"
.")";
$sgbd->query($sql);
}
- catch(Exception $e) { return false; }
+ catch(Exception $e){
+ return false;
+ }
return true;
}
- function set_source_groupe($id, $id_groupe_status)
- { if(($groupe = $this->groupe($id)) !== false)
- { $sgbd = $this->sgbd();
+ public function set_source_groupe($id, $id_groupe_status){
+ if(($groupe = $this->groupe($id)) !== false){
+ $sgbd = $this->sgbd();
try{
$sql =
"UPDATE #--sml_sources_authors SET"
." WHERE id=".$id;
$sgbd->query($sql);
}
- catch(Exception $e) { return false; }
+ catch(Exception $e){
+ return false;
+ }
return true;
}
return false;
}
- function del_source_groupes($id_source)
- { $sgbd = $this->sgbd();
+ public function del_source_groupes($id_source){
+ $sgbd = $this->sgbd();
try{
$sql = "DELETE FROM #--sml_sources_authors WHERE id_source=".$this->eq($id_source);
$sgbd->query($sql);
}
- catch(Exception $e) { return false; }
+ catch(Exception $e){
+ return false;
+ }
return true;
}
- function del_source_groupe($id)
- { $sgbd = $this->sgbd();
+ public function del_source_groupe($id_source, $id_author){
+ $sgbd = $this->sgbd();
try{
- $sql = "DELETE FROM #--sml_sources_authors WHERE id=".$this->eq($id);
+ $sql =
+ "DELETE FROM #--sml_sources_authors"
+ ." WHERE id_source=".$this->eq($id_source)
+ ." AND id_author=".$this->eq($id_author);
$sgbd->query($sql);
}
- catch(Exception $e) { return false; }
+ catch(Exception $e){
+ return false;
+ }
return true;
}
// --------------------------------------------------------------------
- function sources_access(){
+ public function sources_access(){
$sgbd = $this->sgbd();
$sources_access = array();
try{
while($v_rst = $sgbd->fetch_assoc($rst)) $sources_access[$v_rst["id"]] = $v_rst;
$sgbd->free_result($rst);
}
- catch(Exception $e) { $sources_access = false; }
+ catch(Exception $e){
+ $sources_access = false;
+ }
return $sources_access;
}
- function id_groupe_status_admin() { return 1; }
- function id_groupe_status_editeur() { return 2; }
- function id_groupe_status_contributeur() { return 3; }
+ public function id_groupe_status_admin(){
+ return 1;
+ }
+
+ public function id_groupe_status_editeur(){
+ return 2;
+ }
+
+ public function id_groupe_status_contributeur(){
+ return 3;
+ }
- function get_admin_groupe($groupes)
- { $groupe = array();
- if(is_array($groupes)) foreach($groupes as $source_groupe)
- { if($source_groupe["id_groupe_status"] == $this->id_groupe_status_admin())
- { $groupe = $source_groupe;
+ public function get_admin_groupe($groupes){
+ $groupe = array();
+ if(is_array($groupes)) foreach($groupes as $source_groupe){
+ if($source_groupe["id_groupe_status"] == $this->id_groupe_status_admin()){
+ $groupe = $source_groupe;
break;
}
}
return $groupe;
}
- function get_editor_groupes($groupes){
+ public function get_editor_groupes($groupes){
$editor_groupes = array();
- if(is_array($groupes)) foreach($groupes as $source_groupe)
- { if(
+ if(is_array($groupes)) foreach($groupes as $source_groupe){
+ if(
$source_groupe["id_groupe_status"] == $this->id_groupe_status_admin()
|| $source_groupe["id_groupe_status"] == $this->id_groupe_status_editeur()
){
return $editor_groupes;
}
- function source_permissions($source, $id_user)
- { $permissions = array
- ( "admin" => false,
+ public function source_permissions($source, $id_user){
+ $permissions = array(
+ "admin" => false,
"editeur" => false,
"contributeur" => false
);
- foreach($source["groupes"] as $id_groupe => $source_groupe)
- { if($source_groupe["id_user"] == $id_user)
- { if($source_groupe["id_groupe_status"] == $this->id_groupe_status_admin())
- { $permissions["admin"] = true;
+ foreach($source["groupes"] as $id_groupe => $source_groupe){
+ if($source_groupe["id_user"] == $id_user){
+ if($source_groupe["id_groupe_status"] == $this->id_groupe_status_admin()){
+ $permissions["admin"] = true;
$permissions["editeur"] = true;
$permissions["contributeur"] = true;
}
- elseif($source_groupe["id_groupe_status"] == $this->id_groupe_status_editeur())
- { $permissions["editeur"] = true;
+ elseif($source_groupe["id_groupe_status"] == $this->id_groupe_status_editeur()){
+ $permissions["editeur"] = true;
$permissions["contributeur"] = true;
}
- elseif($source_groupe["id_groupe_status"] == $this->id_groupe_status_contributeur())
- { $permissions["contributeur"] = true;
+ elseif($source_groupe["id_groupe_status"] == $this->id_groupe_status_contributeur()){
+ $permissions["contributeur"] = true;
}
}
}
return $permissions;
}
- }
+// --------------------------------------------------------------------
-?>
\ No newline at end of file
+ public function sources_invitations($groupes, $id_user){
+ $groupes_in = "";
+ foreach($groupes as $id_groupe => $groupe) $groupes_in .= ($groupes_in ? "," : "").$id_groupe;
+ return $this->list_sml_sources_invitations(
+ array(
+ "index_name" => "id",
+ "where"=> ($groupes_in ? "id_author IN(".$groupes_in.") OR " : "")."id_user=".$id_user,
+ "order_by" => "date_invitation",
+ "order" => "DESC"
+ )
+ );
+ }
+
+ }