]> dev.renevier.net Git - syp.git/blobdiff - inc/db/anydb.php
err_lonlat_invalid exceptions not thrown correctly
[syp.git] / inc / db / anydb.php
index bb80032a274eb3e4b898728f24f80c2e3c29b394..ca61b0f3135877af1c96737f6d9b2f2be8259e94 100644 (file)
@@ -10,10 +10,11 @@ class feature {
     private $title = null;
     private $description = null;
     private $date = 0;
+    private $user = null;
 
     const err_lonlat_invalid = 1;
 
-    function __construct ($id, $lon, $lat, $imgpath, $title, $description, $date) {
+    function __construct ($id, $lon, $lat, $imgpath, $title, $description, $date, $user) {
         $this->imgpath = $imgpath;
 
         // id
@@ -30,17 +31,20 @@ class feature {
         // date
         $this->date = $date;
 
+        // user
+        $this->user = $user;
+
         // longitude
         if (!isset ($lon) || !is_numeric ($lon) ||
              ($lon < -180) || ($lon > 180)) {
-            throw new Exception ($this->err_lonlat_invalid);
+            throw new Exception (self::err_lonlat_invalid);
         }
         $this->lon = $lon;
 
         // latitude
         if (!isset ($lat) || !is_numeric ($lat) ||
              ($lat < -90) || ($lat > 90)) {
-            throw new Exception ($this->err_lonlat_invalid);
+            throw new Exception (self::err_lonlat_invalid);
         }
         $this->lat = $lat;
     }
@@ -89,9 +93,15 @@ interface anydbConnection {
      */
     public function create_items_table();
 
+    /*
+     * returns true if $usrname is name of an existing user, false otherwise.
+     */
+    public function user_exists ($usrname);
+
     /*
      * set password $pwd for user $usrname. If $usrname does not exist, create
      * it.
+     * throws an err_query error in case $pwd is null
      */
     public function setpwd($usrname, $pwd);
 
@@ -118,9 +128,10 @@ interface anydbConnection {
     public function getfeature($id);
 
     /*
-     * returns an array of available features
+     * returns an array of features managed by $user. If $user is undefined or
+     * if user is "admin", return all available features.
      */
-    public function listfeatures();
+    public function listfeatures($user);
 
     /*
      * returns the most recent features sorted by date. If $num_features is not
@@ -133,14 +144,6 @@ interface anydbConnection {
      */
     public function imgpath_exists($imgpath);
 
-    /*
-     * returns Minimum Bounding Rectangle containing all feature locations.
-     * That function must return a result even if database is not functional.
-     * Minimum Bounding Rectangle is presented as an Array:
-     *      [bottom, left, top, right]
-     */
-    public function mbr();
-
     /*
      * get name of database backend
      */