sourceml devient un plugin mtweb
[mw_sourceml] / app / data / modules / sql / sml_data_source_groupes.php
1 <?php
2
3   class sml_data_source_groupes extends mw_data
4   {
5
6     function init_groupe_status(){
7       return true;
8     }
9
10     function source_groupes($id_source)
11     { $env = $this->env();
12       $sgbd = $this->sgbd();
13       try{
14         $sql =
15          "SELECT #--sml_authors.*"
16          .", #--sml_sources_authors.id_sources_access as id_groupe_status"
17         ." FROM #--sml_authors, #--sml_sources_authors"
18         ." WHERE #--sml_sources_authors.id_author=#--sml_authors.id"
19         ." AND #--sml_sources_authors.id_source=".$this->eq($id_source);
20         $rst = $sgbd->query($sql);
21         $groupes = array();
22         while($v_rst = $sgbd->fetch_assoc($rst))
23         { $v_rst["image_uri"] =
24           ( $v_rst["image"] ?
25             $env->path("content")."uploads/".$v_rst["image"]
26             : ""
27           );
28           $groupes[$v_rst["id"]] = $v_rst;
29         }
30         $sgbd->free_result($rst);
31       }
32       catch(Exception $e) { return false; }
33       return $groupes;
34     }
35
36     function add_source_groupe($id_source, $id_groupe, $id_groupe_status)
37     { $sgbd = $this->sgbd();
38       try{
39         $sql =
40          "INSERT INTO #--sml_sources_authors(id_source, id_author, id_sources_access) VALUES"
41         ."( ".$this->eq($id_source)
42         .", ".$this->eq($id_groupe)
43         .", ".$this->eq($id_groupe_status)
44         .")";
45         $sgbd->query($sql);
46       }
47       catch(Exception $e) { return false; }
48       return true;
49     }
50
51     function set_source_groupe($id, $id_groupe_status)
52     { if(($groupe = $this->groupe($id)) !== false)
53       { $sgbd = $this->sgbd();
54         try{
55           $sql =
56            "UPDATE #--sml_sources_authors SET"
57           ."  id_sources_access=".$this->eq($id_groupe_status)
58           ." WHERE id=".$id;
59           $sgbd->query($sql);
60         }
61         catch(Exception $e) { return false; }
62         return true;
63       }
64       return false;
65     }
66
67     function del_source_groupes($id_source)
68     { $sgbd = $this->sgbd();
69       try{
70         $sql = "DELETE FROM #--sml_sources_authors WHERE id_source=".$this->eq($id_source);
71         $sgbd->query($sql);
72       }
73       catch(Exception $e) { return false; }
74       return true;
75     }
76
77     function del_source_groupe($id)
78     { $sgbd = $this->sgbd();
79       try{
80         $sql = "DELETE FROM #--sml_sources_authors WHERE id=".$this->eq($id);
81         $sgbd->query($sql);
82       }
83       catch(Exception $e) { return false; }
84       return true;
85     }
86
87 // --------------------------------------------------------------------
88
89     function id_groupe_status_admin()        { return 1; }
90     function id_groupe_status_editeur()      { return 2; }
91     function id_groupe_status_contributeur() { return 3; }
92
93     function get_admin_groupe($groupes)
94     { $groupe = array();
95       if(is_array($groupes)) foreach($groupes as $source_groupe)
96       { if($source_groupe["id_groupe_status"] == $this->id_groupe_status_admin())
97         { $groupe = $source_groupe;
98           break;
99         }
100       }
101       return $groupe;
102     }
103
104     function source_permissions($source, $id_user)
105     { $permissions = array
106       ( "admin" => false,
107         "editeur" => false,
108         "contributeur" => false
109       );
110       foreach($source["groupes"] as $id_groupe => $source_groupe)
111       { if($source_groupe["id_user"] == $id_user)
112         { if($source_groupe["id_groupe_status"] == $this->id_groupe_status_admin())
113           { $permissions["admin"] = true;
114             $permissions["editeur"] = true;
115             $permissions["contributeur"] = true;
116           }
117           elseif($source_groupe["id_groupe_status"] == $this->id_groupe_status_editeur())
118           { $permissions["editeur"] = true;
119             $permissions["contributeur"] = true;
120           }
121           elseif($source_groupe["id_groupe_status"] == $this->id_groupe_status_contributeur())
122           { $permissions["contributeur"] = true;
123           }
124         }
125       }
126       return $permissions;
127     }
128
129   }
130
131 ?>