replacing the cli cmds with variables and configuration in config.php
[gwvp-mini.git] / gwvpmini / gwvpmini_db.php
index 0f11ec9..d47bcee 100644 (file)
@@ -55,7 +55,47 @@ function gwvpmini_getUser($username=null, $email=null, $id=null)
 \r
 }
 
+function gwvpmini_GetActivityLog($nentries = 20, $forid=-1)
+{
+       /*
+        *              "activity_id" INTEGER PRIMARY KEY AUTOINCREMENT,
+               "activity_type" TEXT,
+               "activity_date" TEXT,
+               "activity_user" TEXT,
+               "activity_repo" TEXT,
+               "activity_commitid" TEXT,
+               "activity_commitlog" TEXT,
+               "activity_visibleto" TEXT
+
+        */
+       $conn = gwvpmini_ConnectDB();\r
+       
+       if($forid == -1) {
+               // we're searching for anonymous ones
+               $sql = "select * from activity where activity_visibleto='a' order by activity_date desc limit $nentries";
+       } else {
+               $sql = "select * from activity where activity_visibleto='a' or activity_visibleto='r' or activity_visibleto like '%:$forid:%' order by activity_date desc limit $nentries";
+       }
+       
+       $vls = $conn->query($sql);
+       
+       $nent = 0;
+       $ret = array();
+       if($vls !== false) foreach($vls as $vals) {
+               $ret[$nent]["type"] = $vals["activity_type"];
+               $ret[$nent]["date"] = $vals["activity_date"];
+               $ret[$nent]["userid"] = $vals["activity_user"];
+               $ret[$nent]["repoid"] = $vals["activity_repo"];
+               $ret[$nent]["commitid"] = $vals["activity_commitid"];
+               $ret[$nent]["commitlog"] = $vals["activity_commitlog"];
+               $nent++;
+       }
+       
+       if($nent == 0) return false;
+       else return $ret;
+}
 
+// TODO: deal with multiple repos from one ownerid
 function gwvpmini_getRepo($ownerid=null, $name=null, $id=null)\r
 {\r
        $conn = gwvpmini_ConnectDB();
@@ -211,7 +251,8 @@ function gwvpmini_GetRepoPerm($rid, $uid)
        \r
        $permsarray = unserialize(base64_decode($cperms_t));
        
-       // error_log("PERMSARRAY: ".print_r($permsarray,true));
+       error_log("PERMSARRAY: with call for $rid and user $uid ".print_r($permsarray,true));
+       
        
        
        $perm = 0;
@@ -330,6 +371,17 @@ function gwvpmini_EnableUser($uid)
 \r
        return $conn->query($sql);\r
 }\r
+
+function gwvpmini_SetRepoCloning($rid)\r
+{\r
+       $conn = gwvpmini_ConnectDB();\r
+\r
+       if($rid < 0) return;\r
+\r
+       $sql = "update repos set repos_status=2 where repos_id='$rid'";\r
+\r
+       return $conn->query($sql);\r
+}\r
 \r
 function gwvpmini_DisableRepo($rid)
 {
@@ -431,31 +483,7 @@ function gwvpmini_AddUser($username, $password, $fullname, $email, $desc, $level
        return $retval;
 }\r
 
-function gwvpmini_GetActivityLog($nentries = 100)
-{
-       $conn = gwvpmini_ConnectDB();\r
-       
-       $sql = "select * from activity order by activity_date desc limit 100";
-
-       $res = $conn->query($sql);
-       
-       $logs = null;
-       $i = 0;
-       foreach($res as $row) {
-               $logs[$i]["type"] = $row["activity_type"];
-               $logs[$i]["date"] = $row["activity_date"];
-               $logs[$i]["userid"] = $row["activity_user"];
-               $logs[$i]["repoid"] = $row["activity_repo"];
-               $logs[$i]["commitid"] = $row["activity_commitid"];
-               $logs[$i]["commitlog"] = $row["activity_commitlog"];
-               $logs[$i]["visibleto"] = $row["activity_visibleto"];
-               $i++;
-       }
-       
-       return $logs;
-}
-
-function gwvpmini_AddActivityLog($type, $userid, $repoid, $commitid, $commitlog)
+function gwvpmini_AddActivityLog($type, $userid, $repoid, $commitid, $commitlog, $visibleto="a")
 {
        /*
         *      CREATE TABLE "activity" (
@@ -474,7 +502,7 @@ function gwvpmini_AddActivityLog($type, $userid, $repoid, $commitid, $commitlog)
        $conn = gwvpmini_ConnectDB();
        
        // TODO: implement visibility
-       $visibleto = "a";\r
+       //$visibleto = "a";\r
        \r
        $sql = "insert into 'activity' values ( null, '$type', '".time()."', '$userid', '$repoid', '$commitid', '$commitlog', '$visibleto')";
        
@@ -516,8 +544,18 @@ function gwvpmini_dbCreateSQLiteStructure($dbloc)
        "repos_owner" INTEGER,
        "repos_perms" TEXT,
        "repos_status" TEXT,
+       "repos_origin" TEXT,
        UNIQUE(repos_name)\r
-       )';\r
+       )';
+       
+       $msgsql = '
+       CREATE TABLE "messages" (
+       "msgs_id" INTEGER PRIMARY KEY AUTOINCREMENT,
+       "msgs_type" TEXT,
+       "msgs_data" TEXT,
+       "msgs_to_id" TEXT
+       )';
+       \r
 \r
        // this looks like null, <repoid>, <read|visible|write>, user:<uid>|group:<gid>|authed|anon\r
        // where authed = any authenticated user, anon = everyone (logged in, not logged in, etc)\r
@@ -562,7 +600,8 @@ function gwvpmini_dbCreateSQLiteStructure($dbloc)
        $DB_CONNECTION->query($initialuser_user);
        $DB_CONNECTION->query($reposql);\r
        $DB_CONNECTION->query($configsql);
-       $DB_CONNECTION->query($activitysql);\r
+       $DB_CONNECTION->query($activitysql);
+       $DB_CONNECTION->query($msgsql);\r
 }
 
 function gwvpmini_getConfigVal($confname)\r
@@ -666,6 +705,59 @@ function gwvpmini_GetRepoDescFromName($reponame)
 \r
        return $retval;\r
 }
+
+function gwvpmini_SendMessageByDb($type, $data, $forid)
+{
+       $conn = gwvpmini_ConnectDB();
+       
+       $sql = "insert into messages values (null, '$type', '$data', '$forid')";
+       
+       return $conn->query($sql);
+}
+
+function gwvpmini_GetMessagesForId($uid)
+{
+       /*
+        *      $msgsql = '
+       CREATE TABLE "messages" (
+       "msgs_id" INTEGER PRIMARY KEY AUTOINCREMENT,
+       "msgs_type" TEXT,
+       "msgs_data" TEXT,
+       "msgs_to_id" TEXT,
+       )';
+
+        */
+       $conn = gwvpmini_ConnectDB();\r
+       \r
+       $sql = "select * from messages where msgs_to_id='$uid'";\r
+       // error_log("desc for name sql: $sql");\r
+       \r
+       $res = $conn->query($sql);
+       
+       error_log("request message for uid, $uid with sql $sql");\r
+       
+       $i = 0;\r
+       if(!$res) return 0;
+       foreach($res as $row) {
+               $retval[$i]["id"] = $row["msgs_id"];
+               $retval[$i]["type"] = $row["msgs_type"];
+               $retval[$i]["data"] = $row["msgs_data"];
+               $i++;\r
+       }
+       
+       if($i == 0) return 0;
+       else return $retval;\r
+       
+}
+
+function gwvpmini_DeleteMessagesById($mid)
+{
+       $conn = gwvpmini_ConnectDB();\r
+       \r
+       $sql = "delete from messages where msgs_id='$mid'";
+       
+       return $conn->query($sql);
+}
 \r
 function gwvpmini_GetRepoOwnerDetailsFromName($reponame)\r
 {\r
@@ -736,17 +828,19 @@ function gwvpmini_setConfigVal($confname, $confval)
        return $conn->query($sql);\r
 }
 
-function gwvpmini_AddRepo($name, $desc, $ownerid)
+function gwvpmini_AddRepo($name, $desc, $ownerid, $defperms, $clonefrom)
 {
        
        // error_log("addrepo in db for $name, $desc, $ownerid");
        $conn = gwvpmini_ConnectDB();\r
        
-       $perms["b"] = "a";
+       $perms["b"] = $defperms;
        
        $encperms = base64_encode(serialize($perms));
+       
+       if($clonefrom === false) $clonefrom = "";
        \r
-       $sql = "insert into repos values (null, '$name', '$desc', '$ownerid', '$encperms', 0)";\r
+       $sql = "insert into repos values (null, '$name', '$desc', '$ownerid', '$encperms', 0, '$clonefrom')";\r
        \r
        $conn->query($sql);\r
 }
@@ -817,7 +911,7 @@ function gwvpmini_GetOwnedRepos($username)
                // error_log(print_r($row, true));
        }
        
-       // error_log(print_r($retval, true));\r
+       error_log(print_r($retval, true));\r
        return $retval;\r
 }