user admin/status change management
[gwvp-mini.git] / gwvpmini / gwvpmini_db.php
index b94b4ca..bb679b8 100644 (file)
@@ -252,6 +252,50 @@ function gwvpmini_RemoveUser($uid)
        return $conn->query($sql);
 }
 
+function gwvpmini_UpdateUserEmail($uid, $email)
+{
+       $conn = gwvpmini_ConnectDB();\r
+       \r
+       if($uid < 0) return;\r
+       \r
+       $sql = "update users set user_email='$email' where user_id='$uid'";\r
+       \r
+       return $conn->query($sql);
+}
+
+function gwvpmini_UpdateUserDesc($uid, $desc)\r
+{\r
+       $conn = gwvpmini_ConnectDB();\r
+\r
+       if($uid < 0) return;\r
+\r
+       $sql = "update users set user_desc='$desc' where user_id='$uid'";\r
+\r
+       return $conn->query($sql);\r
+}\r
+
+function gwvpmini_SetUserStatusAdmin($uid, $adminstat)
+{
+       $conn = gwvpmini_ConnectDB();\r
+       \r
+       if($uid < 0) return;\r
+       \r
+       $sql = "update users set user_level='$adminstat' where user_id='$uid'";\r
+       \r
+       return $conn->query($sql);
+}
+
+function gwvpmini_UpdateUserPassword($uid, $pass)
+{
+       $conn = gwvpmini_ConnectDB();
+
+       if($uid < 0) return;
+
+       $sql = "update users set user_password='".sha1($pass)."' where user_id='$uid'";
+
+       return $conn->query($sql);
+}
+
 function gwvpmini_DisableUser($uid)\r
 {\r
        $conn = gwvpmini_ConnectDB();\r
@@ -315,7 +359,8 @@ function gwvpmini_ConnectDB()
        global $WEB_ROOT_FS, $BASE_URL, $data_directory, $db_type, $db_name, $DB_CONNECTION;\r
 \r
        // first check if $DB_CONNECTION IS live\r
-       //error_log("in connection $db_type, $db_name");\r
+       //error_log("in connection $db_type, $db_name");
+       $db_url = false;\r
 \r
        if($DB_CONNECTION != false) return $DB_CONNECTION;\r
 \r
@@ -330,7 +375,7 @@ function gwvpmini_ConnectDB()
        }\r
 \r
        // and here we go with pdo.\r
-       //error_log("attmpting to open db, $db_type:$db_url");\r
+       error_log("attmpting to open db, $db_type:$db_url");\r
        try {\r
                $DB_CONNECTION = new PDO("$db_type:$db_url");\r
        } catch(PDOException $exep) {\r
@@ -386,6 +431,59 @@ 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)
+{
+       /*
+        *      CREATE TABLE "activity" (
+               "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();
+       
+       // TODO: implement visibility
+       $visibleto = "a";\r
+       \r
+       $sql = "insert into 'activity' values ( null, '$type', '".time()."', '$userid', '$repoid', '$commitid', '$commitlog', '$visibleto')";
+       
+       error_log("SQL IS $sql");\r
+       \r
+       $res = $conn->query($sql);\r
+       if(!$res) return -1;
+       return true;
+}
 
 function gwvpmini_dbCreateSQLiteStructure($dbloc)\r
 {\r
@@ -424,7 +522,27 @@ function gwvpmini_dbCreateSQLiteStructure($dbloc)
        // 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
        // read|visible|write = can clone from repo|can see repo exists and see description but not clone from it|can push to repo\r
-       // TODO: is this sufficient? i have to think about it\r
+       // TODO: is this sufficient? i have to think about it
+       
+       
+       // type for now will only be "git"
+       // date is obvious
+       // desc is a desction of the activity
+       // link is of the form "repo,reponame,repoid:user,username,useremail,userid" so it
+       // can be attached simply
+       // viewby is a simple list of uid's that should be able to see it... "r" for all registered
+       // "a" for everyone
+       $activitysql = '
+       CREATE TABLE "activity" (
+               "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
+       )';\r
 \r
        $configsql = '\r
        CREATE TABLE "config" (\r
@@ -443,7 +561,8 @@ function gwvpmini_dbCreateSQLiteStructure($dbloc)
        $DB_CONNECTION->query($initialuser_admin);
        $DB_CONNECTION->query($initialuser_user);
        $DB_CONNECTION->query($reposql);\r
-       $DB_CONNECTION->query($configsql);\r
+       $DB_CONNECTION->query($configsql);
+       $DB_CONNECTION->query($activitysql);\r
 }
 
 function gwvpmini_getConfigVal($confname)\r
@@ -717,7 +836,7 @@ function gwvpmini_GetContributedRepos($username)
 \r
 \r
        $uid = gwvpmini_GetUserId($username);\r
-       $sql = "select repos_id,repos_description,repos_perms,repos_owernid,repos_status from repos";\r
+       $sql = "select repos_id,repos_description,repos_perms,repos_owner,repos_status,repos_name from repos";\r
        $res = $conn->query($sql);\r
        if($username == "") return false;\r
 \r
@@ -726,16 +845,24 @@ function gwvpmini_GetContributedRepos($username)
        $i = 0;\r
        foreach($res as $row) {
                $perms = unserialize(base64_decode($row["repos_perms"]));
+               error_log("CONTRIB: $uid for ".$row["repos_id"]." - ".print_r($perms,true));
                if(isset($perms["$uid"])) if($perms["$uid"] > 1) {
                        $rids[$i]["id"] = $row["repos_id"];
                        $rids[$i]["desc"] = $row["repos_description"];
-                       $rids[$i]["ownerid"] = $row["repos_ownerid"];
+                       $rids[$i]["owner"] = $row["repos_owner"];
                        $rids[$i]["status"] = $row["repos_status"];
+                       $rids[$i]["name"] = $row["repos_name"];
                        $i++;
                }
+       }
+       $retval = $rids;
+       
+       if($i == 0) {
+               error_log("CONTRIBREPOS: no repos found?");
+               return false;
        }\r
 \r
-       error_log(print_r($retval, true));\r
+       error_log("CONTRIBREPOS: ".print_r($retval, true));\r
        return $retval;\r
 }