X-Git-Url: http://git.pjr.cc/?p=gwvp.git;a=blobdiff_plain;f=gwvplib%2Fgwvpdatabase.php;h=7338e686eab0efd8cc6ffa9991ce6af51b0439d4;hp=0c9a121a4f7a32435eaf3ea563bd2e4e0e067e3d;hb=5e67e4fe3908ac2cfffced7f462e4f373d1cdbf1;hpb=774923bffbfc4efdc92cfece19ec7dc48a6b7f5b diff --git a/gwvplib/gwvpdatabase.php b/gwvplib/gwvpdatabase.php index 0c9a121..7338e68 100644 --- a/gwvplib/gwvpdatabase.php +++ b/gwvplib/gwvpdatabase.php @@ -26,6 +26,7 @@ function gwvp_dbCreateSQLiteStructure($dbloc) CREATE TABLE groups ( "groups_id" INTEGER PRIMARY KEY AUTOINCREMENT, "groups_name" TEXT, + "groups_description" TEXT, "groups_is_admin" INTEGER, "groups_owner_id" INTEGER )'; @@ -39,8 +40,8 @@ function gwvp_dbCreateSQLiteStructure($dbloc) )'; // this looks like null, , , user:|group:|authed|anon - // where authed = any authenticated user, anon = any unauthed user - // read|visible|write = can clone from repo|can see repo exists but not clone from it|can push to repo + // where authed = any authenticated user, anon = everyone (logged in, not logged in, etc) + // read|visible|write = can clone from repo|can see repo exists and see description but not clone from it|can push to repo // TODO: is this sufficient? i have to think about it $repoperms = ' CREATE TABLE "repoperms" ( @@ -78,6 +79,77 @@ function gwvp_dbCreateSQLiteStructure($dbloc) $DB_CONNECTION->query($groupmemsql); } +function gwvp_forceDisconnect() +{ + + global $DB_CONNECTION; + + $DB_CONNECTION = false; +} + + +function gwvp_getConfigVal($confname) +{ + /* + * $configsql = ' + CREATE TABLE "config" ( + "config_name" TEXT, + "config_value" TEXT + )'; + + */ + + $conn = gwvp_ConnectDB(); + + $sql = "select * from config where config_name='$confname'"; + + $res = $conn->query($sql); + + $return = null; + foreach($res as $val) { + $return = $val; + } + +} + +function gwvp_eraseConfigVal($confname) +{ + /* + * $configsql = ' + CREATE TABLE "config" ( + "config_name" TEXT, + "config_value" TEXT + )'; + + */ + + $conn = gwvp_ConnectDB(); + + $sql = "delete from config where config_name='$confname'"; + + return $conn->query($sql); +} + +function gwvp_setConfigVal($confname, $confval) +{ + /* + * $configsql = ' + CREATE TABLE "config" ( + "config_name" TEXT, + "config_value" TEXT + )'; + + */ + gwvp_eraseConfigVal($confname); + + $conn = gwvp_ConnectDB(); + + $sql = "insert into config values('$confname', '$confval')"; + + return $conn->query($sql); +} + + function gwvp_isDBSetup() { // for sqlite, we just check if the db exists, for everyone else, we check for a conneciton and go yay or nay @@ -118,6 +190,7 @@ function gwvp_ConnectDB() return $DB_CONNECTION; } +// TODO: we have to define what "Status" is function gwvp_createUser($email, $fullname, $password, $username, $desc, $status) { $conn = gwvp_ConnectDB(); @@ -125,7 +198,9 @@ function gwvp_createUser($email, $fullname, $password, $username, $desc, $status // TODO: change from sha1 $shapass = sha1($password); //error_log("Create user called with $email"); - $conn->query("insert into users values (null, '$fullname', '$shapass', '$username', '$email', '$desc', '$status')"); + $sql = "insert into users values (null, '$fullname', '$shapass', '$username', '$email', '$desc', '$status')"; + error_log("Creating user, $sql"); + return $conn->query($sql); /* * "users_id" INTEGER PRIMARY KEY AUTOINCREMENT, "user_full_name" TEXT, @@ -196,7 +271,7 @@ function gwvp_deleteUser($email) $conn->query($sql); } -function gwvp_createGroup($group_name, $is_admin, $owner_id) +function gwvp_createGroup($group_name, $group_desc, $is_admin, $owner_id) { $conn = gwvp_ConnectDB(); @@ -214,7 +289,8 @@ function gwvp_createGroup($group_name, $is_admin, $owner_id) } else { $is_admin_t = 0; } - $sql = "insert into groups values( null, '$group_name', '$is_admin_t', '$owner_id')"; + $sql = "insert into groups values( null, '$group_name', '$group_desc', '$is_admin_t', '$owner_id')"; + $conn->query($sql); @@ -350,6 +426,39 @@ function gwvp_getGroupId($groupname) return $return; } +function gwvp_getGroup($gid) +{ + /* + * $groupsql = ' + CREATE TABLE groups ( + "groups_id" INTEGER PRIMARY KEY AUTOINCREMENT, + "groups_name" TEXT, + "groups_is_admin" INTEGER, + "groups_owner_id" INTEGER + )'; + + */ + $conn = gwvp_ConnectDB(); + + $sql = "select * from groups where groups_id='$gid'"; + + $res = $conn->query($sql); + $return = false; + foreach($res as $u_res) { + $return["id"] = $u_res["groups_id"]; + $return["name"] = $u_res["groups_name"]; + if($u_res["groups_is_admin"] == 1) { + $return["isadmin"] = true; + } else { + $return["isadmin"] = false; + } + $return["ownerid"] = $u_res["groups_owner_id"]; + $return["description"] = $u_res["groups_description"]; + } + + return $return; +} + function gwvp_getUserId($useremail=null, $username = null) { $conn = gwvp_ConnectDB(); @@ -369,6 +478,26 @@ function gwvp_getUserId($useremail=null, $username = null) return $return; } +function gwvp_getUserName($id = null, $email=null) +{ + $conn = gwvp_ConnectDB(); + + if($email != null) { + $sql = "select user_username from users where user_email='$email'"; + } else if($id != null) { + $sql = "select user_username from users where users_id='$id'"; + } else return false; + + $res = $conn->query($sql); + $return = false; + foreach($res as $u_res) { + $return = $u_res["user_username"]; + } + + return $return; +} + + function gwvp_getUserEmail($id) { $conn = gwvp_ConnectDB(); @@ -384,6 +513,44 @@ function gwvp_getUserEmail($id) return $return; } +function gwvp_deleteGroupMemberByID($uid, $gid) +{ + $conn = gwvp_ConnectDB(); + + /* + * CREATE TABLE "group_membership" ( + "groupmember_id" INTEGER PRIMARY KEY AUTOINCREMENT, + "groupmember_groupid" INTEGER, + "groupmember_userid" INTEGER + + */ + $sql = "delete from group_membership where groupmember_groupid='$gid' and groupmember_userid='$uid'"; + + $conn->query($sql); + + return true; +} + + +function gwvp_addGroupMemberByID($uid, $gid) +{ + $conn = gwvp_ConnectDB(); + + /* + * CREATE TABLE "group_membership" ( + "groupmember_id" INTEGER PRIMARY KEY AUTOINCREMENT, + "groupmember_groupid" INTEGER, + "groupmember_userid" INTEGER + + */ + $sql = "insert into group_membership values (null, '$gid', '$uid')"; + + $conn->query($sql); + + return true; +} + + function gwvp_addGroupMember($email, $groupname) { $conn = gwvp_ConnectDB(); @@ -398,7 +565,7 @@ function gwvp_addGroupMember($email, $groupname) "groupmember_userid" INTEGER */ - if($uid!=false&&$gid!=false) $sql = "insert into group_membership values (null, '$gid', '$uid')"; + if($uid!=false&&$gid!=false) gwvp_addGroupMemberByID($uid, $gid); else return false; $conn->query($sql); @@ -447,12 +614,13 @@ function gwvp_IsUserAdmin($email=null, $username = null) $res = $conn->query($sql); $rn = 0; + $gid = false; foreach($res as $u_res) { $gid[$rn] = $u_res["groupmember_groupid"]; $rn++; } - foreach($gid as $gid_t) { + if($gid !== false) foreach($gid as $gid_t) { /* * CREATE TABLE groups ( "groups_id" INTEGER,