4 $DB_CONNECTION = false;
6 // i need to figure out how i do data encapsulation here. We'll support mysql and sqlite3 off the bat if we can - sqlite3 comes first tho
7 function gwvp_dbCreateMysqlStructure()
12 function gwvp_dbCreateSQLiteStructure($dbloc)
15 CREATE TABLE "users" (
16 "users_id" INTEGER PRIMARY KEY AUTOINCREMENT,
17 "user_full_name" TEXT,
27 "groups_id" INTEGER PRIMARY KEY AUTOINCREMENT,
29 "groups_is_admin" INTEGER,
30 "groups_owner_id" INTEGER
34 CREATE TABLE "repos" (
35 "repos_id" INTEGER PRIMARY KEY AUTOINCREMENT,
37 "repos_description" TEXT,
42 CREATE TABLE "config" (
48 CREATE TABLE "group_membership" (
49 "groupmember_id" INTEGER PRIMARY KEY AUTOINCREMENT,
50 "groupmember_groupid" INTEGER,
51 "groupmember_userid" INTEGER
55 $DB_CONNECTION = new PDO("sqlite:$dbloc");
56 } catch(PDOException $exep) {
57 error_log("execpt on db open");
62 $DB_CONNECTION->query($usersql);
63 $DB_CONNECTION->query($groupsql);
64 $DB_CONNECTION->query($reposql);
65 $DB_CONNECTION->query($configsql);
66 $DB_CONNECTION->query($groupmemsql);
69 function gwvp_isDBSetup()
71 // for sqlite, we just check if the db exists, for everyone else, we check for a conneciton and go yay or nay
72 global $WEB_ROOT_FS, $BASE_URL, $repo_base, $data_directory, $db_type, $db_url;
74 if($db_type == "sqlite") {
75 if(file_exists($db_url)) return true;
79 // TODO now for the connectables
83 function gwvp_ConnectDB()
85 global $WEB_ROOT_FS, $BASE_URL, $repo_base, $data_directory, $db_type, $db_url, $DB_CONNECTION;
87 // first check if $DB_CONNECTION IS live
88 if($DB_CONNECTION != false) return $DB_CONNECTION;
90 // and here we go with pdo.
92 $DB_CONNECTION = new PDO("$db_type:$db_url");
93 } catch(PDOException $exep) {
94 error_log("execpt on db open");
99 function gwvp_createUser($email, $fullname, $password, $nick, $desc, $status)
101 $conn = gwvp_ConnectDB();
103 // TODO: change from sha1
104 $shapass = sha1($password);
105 $conn->query("insert into users values (null, '$fullname', '$shapass', '$nick', '$email', '$desc', '$status')");
107 * "users_id" INTEGER PRIMARY KEY AUTOINCREMENT,
108 "user_full_name" TEXT,
109 "user_password" TEXT,
110 "user_nickname" TEXT,
113 "user_status" INTEGER
118 function gwvp_getUsers()
120 $conn = gwvp_ConnectDB();
122 $res = $conn->query("select * from users");
126 foreach($res as $u_res) {
127 $returns[$rn]["id"] = $u_res["users_id"];
128 $returns[$rn]["fullname"] = $u_res["user_full_name"];
129 $returns[$rn]["password"] = $u_res["user_password"];
130 $returns[$rn]["nickname"] = $u_res["user_nickname"];
131 $returns[$rn]["email"] = $u_res["user_email"];
132 $returns[$rn]["desc"] = $u_res["user_desc"];
133 $returns[$rn]["status"] = $u_res["user_status"];
140 function gwvp_deleteUser($email)
142 $conn = gwvp_ConnectDB();
144 $sql = "delete from users where user_email='$email'";
149 function gwvp_createGroup($group_name, $is_admin, $owner_id)
151 $conn = gwvp_ConnectDB();
154 * CREATE TABLE groups (
157 "groups_is_admin" INTEGER,
158 "groups_owner_id" INTEGER
167 $sql = "insert into groups values( null, '$group_name', '$is_admin_t', '$owner_id')";
173 function gwvp_deleteGroup($groupname)
175 $conn = gwvp_ConnectDB();
177 $sql = "delete from groups where groups_name='$groupname'";
183 function gwvp_getGroups()
185 $conn = gwvp_ConnectDB();
187 $res = $conn->query("select * from groups");
191 foreach($res as $u_res) {
192 $returns[$rn]["id"] = $u_res["groups_id"];
193 $returns[$rn]["name"] = $u_res["groups_name"];
194 if($u_res["groups_is_admin"]=="1") $return[$rn]["admin"] = true;
195 else $return[$rn]["admin"] = false;
196 $returns[$rn]["admin"] = $u_res["groups_is_admin"];
197 $returns[$rn]["ownerid"] = $u_res["groups_owner_id"];
204 function gwvp_getGroupId($groupname)
206 $conn = gwvp_ConnectDB();
208 $sql = "select groups_id from groups where groups_name='$groupname'";
210 $res = $conn->query($sql);
212 foreach($res as $u_res) {
213 $return = $u_res["groups_id"];
219 function gwvp_getUserId($useremail)
221 $conn = gwvp_ConnectDB();
223 $sql = "select users_id from users where user_email='$useremail'";
225 $res = $conn->query($sql);
227 foreach($res as $u_res) {
228 $return = $u_res["users_id"];
234 function gwvp_addGroupMember($email, $groupname)
238 /* functions we'll need to access data:
241 * getUserData(username)
243 * getGroupData(groupname)
245 * addGroupMember(...)
246 * deleteGroupMember(...)