added repo remove from admin page
[gwvp-mini.git] / gwvpmini / gwvpmini_db.php
index cf1f6d5..00f20b1 100644 (file)
@@ -37,7 +37,7 @@ function gwvpmini_getUser($username=null, $email=null, $id=null)
        } else if($email != null) {\r
                $res = $conn->query("select * from users where user_email='$email'");\r
        } else if($id != null) {\r
-               $res = $conn->query("select * from users where users_id='$id'");\r
+               $res = $conn->query("select * from users where user_id='$id'");\r
        } else return false;\r
 \r
        $returns = false;\r
@@ -53,7 +53,92 @@ function gwvpmini_getUser($username=null, $email=null, $id=null)
 \r
        return $returns;\r
 \r
+}
+
+function gwvpmini_getRepo($ownerid=null, $name=null, $id=null)\r
+{\r
+       $conn = gwvpmini_ConnectDB();
+       
+       /*
+        *      $reposql = '
+       CREATE TABLE "repos" (
+       "repos_id" INTEGER PRIMARY KEY AUTOINCREMENT,
+       "repos_name" TEXT,
+       "repos_description" TEXT,
+       "repos_owner" INTEGER,
+       "repos_readperms" TEXT,
+       UNIQUE(repos_name)
+       )';
+
+        */\r
+\r
+       if($ownerid != null) {\r
+               $res = $conn->query("select * from repos where repos_owner='$ownerid'");\r
+       } else if($name != null) {\r
+               $res = $conn->query("select * from repos where repos_name='$name'");\r
+       } else if($id != null) {\r
+               $res = $conn->query("select * from repos where repos_id='$id'");\r
+       } else return false;\r
+\r
+       $returns = false;
+       if(!$res) return false;\r
+       foreach($res as $u_res) {\r
+               $returns["id"] = $u_res["repos_id"];\r
+               $returns["name"] = $u_res["repos_name"];\r
+               $returns["desc"] = $u_res["repos_description"];\r
+               $returns["ownerid"] = $u_res["repos_owner"];\r
+               $returns["perms"] = $u_res["repos_readperms"];\r
+       }\r
+\r
+       return $returns;\r
+\r
+}
+
+function gwvpmini_RemoveRepoDB($id)
+{
+       $conn = gwvpmini_ConnectDB();\r
+       \r
+       if($id < 0) return;\r
+       \r
+       $sql = "delete from repos where repos_id='$id'";\r
+       \r
+       return $conn->query($sql);\r
+       
+}
+
+function gwvpmini_RemoveUser($uid)
+{
+       $conn = gwvpmini_ConnectDB();\r
+       
+       if($uid < 0) return;
+       
+       $sql = "delete from users where user_id='$uid'";
+       
+       return $conn->query($sql);
+}
+
+function gwvpmini_DisableUser($uid)
+{
+       $conn = gwvpmini_ConnectDB();\r
+       \r
+       if($uid < 0) return;\r
+       \r
+       $sql = "update users set user_status=1 where user_id='$uid'";\r
+       \r
+       return $conn->query($sql);
+}\r
+
+function gwvpmini_EnableUser($uid)\r
+{\r
+       $conn = gwvpmini_ConnectDB();\r
+\r
+       if($uid < 0) return;\r
+\r
+       $sql = "update users set user_status=0 where user_id='$uid'";\r
+\r
+       return $conn->query($sql);\r
 }\r
+\r
 
 function gwvpmini_ConnectDB()\r
 {\r
@@ -84,6 +169,51 @@ function gwvpmini_ConnectDB()
        }\r
 \r
        return $DB_CONNECTION;\r
+}
+
+function gwvpmini_UpdateStatusFromConfirm($confirmhash)
+{
+       $conn = gwvpmini_ConnectDB();\r
+       \r
+       $sql = "select count(*) from users where user_status='2:$confirmhash'";
+       
+       $res = $conn->query($sql);
+       
+       if(!$res) return false;
+       
+       foreach($res as $row) {
+               $retval = $row[0];
+       }
+       
+       if($retval > 0) {
+               $sql = "update users set user_status='0' where user_status='2:$confirmhash'";
+               return $conn->query($sql);
+       } else return false;
+}
+
+
+function gwvpmini_AddUser($username, $password, $fullname, $email, $desc, $level, $status)
+{
+       \r
+       
+       \r
+       $conn = gwvpmini_ConnectDB();\r
+       \r
+       $sql = "insert into 'users' values ( null, '$fullname', '".sha1($password)."', '$username', '$email', '$desc', '$level', '$status')";\r
+       \r
+       $res = $conn->query($sql);
+       if(!$res) return -1;
+       
+       $sql = "select user_id from users where user_username='$username'";\r
+       $res = $conn->query($sql);\r
+       if(!$res) return -1;\r
+       
+       $retval = -1;
+       foreach($res as $row) {
+               $retval = $row[0];
+       }
+       
+       return $retval;
 }\r
 
 
@@ -98,7 +228,8 @@ function gwvpmini_dbCreateSQLiteStructure($dbloc)
        "user_email" TEXT,\r
        "user_desc" TEXT,
        "user_level" TEXT,\r
-       "user_status" TEXT\r
+       "user_status" TEXT,
+       UNIQUE(user_username)\r
        )';\r
 \r
        $initialuser_admin = '
@@ -114,7 +245,9 @@ function gwvpmini_dbCreateSQLiteStructure($dbloc)
        "repos_id" INTEGER PRIMARY KEY AUTOINCREMENT,\r
        "repos_name" TEXT,\r
        "repos_description" TEXT,\r
-       "repos_owner" INTEGER\r
+       "repos_owner" INTEGER,
+       "repos_readperms" TEXT,
+       UNIQUE(repos_name)\r
        )';\r
 \r
        // this looks like null, <repoid>, <read|visible|write>, user:<uid>|group:<gid>|authed|anon\r
@@ -213,7 +346,83 @@ function gwvpmini_GetRepoId($reponame)
        
        return $retval;
 }
+
+function gwvpmini_GetRepoDescFromName($reponame)\r
+{\r
+\r
+       /*\r
+        *      $reposql = '\r
+       CREATE TABLE "repos" (\r
+                       "repos_id" INTEGER PRIMARY KEY AUTOINCREMENT,\r
+                       "repos_name" TEXT,\r
+                       "repos_description" TEXT,\r
+                       "repos_owner" INTEGER\r
+       )';\r
 \r
+       */\r
+\r
+       $conn = gwvpmini_ConnectDB();\r
+\r
+       $sql = "select repos_description from repos where repos_name='$reponame'";
+       error_log("desc for name sql: $sql");\r
+\r
+       $res = $conn->query($sql);\r
+\r
+       $retval = -1;\r
+       if(!$res) return -1;\r
+       foreach($res as $row) {\r
+               $retval = $row[0];\r
+       }\r
+\r
+       return $retval;\r
+}
+\r
+function gwvpmini_GetRepoOwnerDetailsFromName($reponame)\r
+{\r
+\r
+       /*\r
+        *      $reposql = '\r
+       CREATE TABLE "repos" (\r
+                       "repos_id" INTEGER PRIMARY KEY AUTOINCREMENT,\r
+                       "repos_name" TEXT,\r
+                       "repos_description" TEXT,\r
+                       "repos_owner" INTEGER\r
+       )';
+       
+               "user_id" INTEGER PRIMARY KEY AUTOINCREMENT,
+       "user_full_name" TEXT,
+       "user_password" TEXT,
+       "user_username" TEXT,
+       "user_email" TEXT,
+       "user_desc" TEXT,
+       "user_level" TEXT,
+       "user_status" TEXT,
+       UNIQUE(user_username)\r
+\r
+       */\r
+\r
+       $conn = gwvpmini_ConnectDB();\r
+\r
+       $sql = "select users.* from repos,users where repos_name='$reponame' and repos_owner=user_id";\r
+\r
+       $res = $conn->query($sql);\r
+\r
+       $retval = -1;\r
+       if(!$res) return -1;\r
+       foreach($res as $row) {
+               $retval = array();
+               error_log("STUFF2: ".print_r($row,true));\r
+               $retval["id"] = $row["user_id"];
+               $retval["fullname"] = $row["user_full_name"];
+               $retval["username"] = $row["user_username"];
+               $retval["email"] = $row["user_email"];
+               $retval["desc"] = $row["user_desc"];
+               $retval["level"] = $row["user_level"];
+               $retval["status"] = $row["user_status"];\r
+       }\r
+\r
+       return $retval;\r
+}\r
 \r
 function gwvpmini_setConfigVal($confname, $confval)\r
 {\r
@@ -227,20 +436,23 @@ function gwvpmini_setConfigVal($confname, $confval)
        */\r
        gwvpmini_eraseConfigVal($confname);\r
 \r
-       $conn = gwvpmini_ConnectDB();\r
+       $conn = gwvpmini_ConnectDB();
+       
+       $sql = "delete from config where config_name='$confname'";
+       $conn->query($sql);\r
 \r
        $sql = "insert into config values('$confname', '$confval')";\r
 \r
        return $conn->query($sql);\r
 }
 
-function gwvpmini_AddRepo($name, $desc, $ownerid)
+function gwvpmini_AddRepo($name, $desc, $ownerid, $perms = "perms-public")
 {
        
        error_log("addrepo in db for $name, $desc, $ownerid");
        $conn = gwvpmini_ConnectDB();\r
        \r
-       $sql = "insert into repos values (null, '$name', '$desc', '$ownerid')";\r
+       $sql = "insert into repos values (null, '$name', '$desc', '$ownerid', '$perms')";\r
        \r
        $conn->query($sql);\r
 }
@@ -263,6 +475,23 @@ function gwvpmini_GetUserId($username)
        return $retval;
 }
 
+function gwvpmini_GetUserNameFromEmail($email)\r
+{\r
+       $conn = gwvpmini_ConnectDB();\r
+\r
+       $sql = "select user_username from users where user_email='$email'";\r
+\r
+       error_log("username sql $sql");\r
+\r
+       $res = $conn->query($sql);\r
+\r
+       $retval = false;\r
+       foreach($res as $row) {\r
+               $retval = $row[0];\r
+       }\r
+\r
+       return $retval;\r
+}
 function gwvpmini_GetOwnedRepos($username)\r
 {
        /*
@@ -310,7 +539,7 @@ function gwvpmini_userLevel($id)
        return $lev;
 }
 
-function gwvpmini_GetUsers()
+function gwvpmini_GetUsers($startat = 0, $num = 10)
 {
        $conn = gwvpmini_ConnectDB();
        
@@ -327,7 +556,7 @@ function gwvpmini_GetUsers()
 
         */\r
        \r
-       $sql = "select * from users";
+       $sql = "select * from users where user_id>='$startat' order by user_id asc limit $num";
        
        $res = $conn->query($sql);
        
@@ -345,5 +574,69 @@ function gwvpmini_GetUsers()
        return $retval;
 }\r
 
+function gwvpmini_GetRepos($startat=0, $num=200)\r
+{\r
+       $conn = gwvpmini_ConnectDB();\r
+       \r
+       /*\r
+        *      CREATE TABLE "repos" (
+       "repos_id" INTEGER PRIMARY KEY AUTOINCREMENT,
+       "repos_name" TEXT,
+       "repos_description" TEXT,
+       "repos_owner" INTEGER
+       )';
+       \r
+                       */\r
+       \r
+       $sql = "select * from repos where repos_id > '$startat' order by repos_id asc limit $num";\r
+       \r
+       $res = $conn->query($sql);\r
+       \r
+       $retval = false;\r
+       foreach($res as $row) {\r
+               $id = $row["repos_id"];\r
+               $retval[$id]["name"] = $row["repos_name"];\r
+               $retval[$id]["desc"] = $row["repos_description"];\r
+               $retval[$id]["owner"] = $row["repos_owner"];\r
+       }\r
+       \r
+       return $retval;\r
+       \r
+       \r
+}\r
+
+function gwvpmini_GetNRepos()
+{
+       $conn = gwvpmini_ConnectDB();
+
+       $sql = "select count(*) from repos";
+       
+       $res = $conn->query($sql);
+       
+       $retval = -1;
+       foreach($res as $row) {
+               $retval = $row[0];
+       }
+       
+       return $retval;
+}
+
+\r
+function gwvpmini_GetNUsers()\r
+{\r
+       $conn = gwvpmini_ConnectDB();\r
+\r
+       $sql = "select count(*) from users";\r
+\r
+       $res = $conn->query($sql);\r
+\r
+       $retval = -1;\r
+       foreach($res as $row) {\r
+               $retval = $row[0];\r
+       }\r
+\r
+       return $retval;\r
+}\r
+
 
 ?>
\ No newline at end of file