function gwvp_ConnectDB()
{
- global $WEB_ROOT_FS, $BASE_URL, $repo_base, $data_directory, $db_type, $db_url, $DB_CONNECTION;
+ global $WEB_ROOT_FS, $BASE_URL, $repo_base, $data_directory, $db_type, $db_name, $DB_CONNECTION;
// first check if $DB_CONNECTION IS live
if($DB_CONNECTION != false) return $DB_CONNECTION;
+ if($db_type == "sqlite") {
+ $db_url = $db_name;
+ if(!file_exists($db_name)) {
+ error_log("$db_name does not exist - problem");
+ }
+ }
+
// and here we go with pdo.
+ error_log("attmpting to open db, $db_type:$db_url");
try {
$DB_CONNECTION = new PDO("$db_type:$db_url");
} catch(PDOException $exep) {
error_log("execpt on db open");
return false;
}
+
+ return $DB_CONNECTION;
}
function gwvp_createUser($email, $fullname, $password, $nick, $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', '$nick', '$email', '$desc', '$status')");
/*
* "users_id" INTEGER PRIMARY KEY AUTOINCREMENT,
$conn->query($sql);
}
+function gwvp_getGroupsForUser($email)
+{
+ $conn = gwvp_ConnectDB();
+
+ /*
+ select g.groups_name from
+ group_membership gm, groups g, users u
+ where
+ gm.groupmember_userid=u.users_id and
+ u.user_email='$email' and
+ gm.groupmember_groupid=g.groups_id and
+ g.groups_name='$groupname'
+ */
+
+ $sql = "
+ select g.groups_name from
+ group_membership gm, groups g, users u
+ where
+ gm.groupmember_userid=u.users_id and
+ u.user_email='$email' and
+ gm.groupmember_groupid=g.groups_id
+ ";
+
+ $res = $conn->query($sql);
+
+ $return = false;
+ $rn = 0;
+ foreach($res as $u_res) {
+ $return[$rn] = $u_res[0];
+ $rn++;
+ }
+
+ return $return;
+}
+
+function gwvp_getGroupsOwnedByUser($email)
+{
+ $conn = gwvp_ConnectDB();
+
+ /*
+ select g.groups_name from
+ group_membership gm, groups g, users u
+ where
+ gm.groupmember_userid=u.users_id and
+ u.user_email='$email' and
+ gm.groupmember_groupid=g.groups_id and
+ g.groups_name='$groupname'
+ */
+
+ $sql = "
+ select g.groups_name from
+ groups g, users u
+ where
+ u.user_email='$email' and
+ u.users_id=g.groups_owner_id
+ ";
+
+ $res = $conn->query($sql);
+
+ $return = false;
+ $rn = 0;
+ foreach($res as $u_res) {
+ $return[$rn] = $u_res[0];
+ $rn++;
+ }
+
+ return $return;
+
+}
+
+function gwvp_groupOwner($groupname)
+{
+ $conn = gwvp_ConnectDB();
+
+ $sql = "select u.user_email from users u, groups g where g.groups_name='$groupname' and g.groups_owner_id=u.users_id";
+
+ $res = $conn->query($sql);
+ $return = false;
+ foreach($res as $u_res) {
+ $return = $u_res[0];
+ }
+
+ return $return;
+}
function gwvp_getGroups()
{
return $return;
}
+function gwvp_getUserEmail($id)
+{
+ $conn = gwvp_ConnectDB();
+
+ $sql = "select user_email from users where users_id='$id'";
+
+ $res = $conn->query($sql);
+ $return = false;
+ foreach($res as $u_res) {
+ $return = $u_res["user_email"];
+ }
+
+ return $return;
+}
+
function gwvp_addGroupMember($email, $groupname)
{
+ $conn = gwvp_ConnectDB();
+
+ $uid = gwvp_getUserId($email);
+ $gid = gwvp_getGroupId($groupname);
+
+ /*
+ * CREATE TABLE "group_membership" (
+ "groupmember_id" INTEGER PRIMARY KEY AUTOINCREMENT,
+ "groupmember_groupid" INTEGER,
+ "groupmember_userid" INTEGER
+
+ */
+ if($uid!=false&&$gid!=false) $sql = "insert into group_membership values (null, '$gid', '$uid')";
+ else return false;
+
+ $conn->query($sql);
+
+ return true;
+}
+
+function gwvp_IsGroupMember($email, $groupname)
+{
+ $conn = gwvp_ConnectDB();
+
+ // i think this is right
+ $sql = "
+ select count(*) from
+ group_membership gm, groups g, users u
+ where
+ gm.groupmember_userid=u.users_id and
+ u.user_email='$email' and
+ gm.groupmember_groupid=g.groups_id and
+ g.groups_name='$groupname'
+ ";
+
+ $res = $conn->query($sql);
+ $result = 0;
+ foreach($res as $u_res) {
+ $result = $u_res[0];
+ }
+
+ if($result == 0) return false;
+ if($result == 1) return true;
+}
+
+function gwvp_IsUserAdmin($email)
+{
+ $conn = gwvp_ConnectDB();
+
+ $id = gwvp_getUserId($email);
+ $sql = "select groupmember_groupid from group_membership where groupmember_userid='$id'";
+
+ $res = $conn->query($sql);
+ $rn = 0;
+ foreach($res as $u_res) {
+ $gid[$rn] = $u_res["groupmember_groupid"];
+ $rn++;
+ }
+
+ foreach($gid as $gid_t) {
+ /*
+ * CREATE TABLE groups (
+ "groups_id" INTEGER,
+ "groups_name" TEXT,
+ "groups_is_admin" INTEGER,
+ "groups_owner_id" INTEGER
+ )';
+
+ */
+
+ $sql = "select groups_is_admin from groups where groups_id='$gid_t'";
+ $res = $conn->query($sql);
+ foreach($res as $u_res) {
+ if($u_res["groups_is_admin"] == "1") return true;
+ }
+ }
+
+ return false;
+}
+
+function gwvp_ModifyUser($userid, $email=null, $fullname=null, $password=null, $nickname=null, $desc=null, $status=null)
+{
+ /*
+ * "users_id" INTEGER PRIMARY KEY AUTOINCREMENT,
+ "user_full_name" TEXT,
+ "user_password" TEXT,
+ "user_nickname" TEXT,
+ "user_email" TEXT,
+ "user_desc" TEXT,
+ "user_status" INTEGER
+
+ */
+
+ $conn = gwvp_ConnectDB();
+
+ if($email != null) {
+ $sql = "update users set user_email='$email' where users_id='$userid'";
+ $conn->query($sql);
+ }
+
+ if($fullname != null) {
+ $sql = "update users set user_full_name='$fullname' where users_id='$userid'";
+ $conn->query($sql);
+ }
+
+ if($password != null) {
+ $shapass = sha1($password);
+ $sql = "update users set user_password='$shapass' where users_id='$userid'";
+ $conn->query($sql);
+ }
+
+ if($nickname != null) {
+ $sql = "update users set user_nickname='$nickname' where users_id='$userid'";
+ $conn->query($sql);
+ }
+
+ if($desc != null) {
+ $sql = "update users set user_desc='$desc' where users_id='$userid'";
+ $conn->query($sql);
+ }
+
+ if($status != null) {
+ $sql = "update users set user_status='$status' where users_id='$userid'";
+ $conn->query($sql);
+ }
+
+ return true;
+}
+
+
+function gwvp_ModifyGroup($groupid, $groupname = null, $group_is_admin = null, $groups_owner_id = null)
+{
+ /*
+ * CREATE TABLE groups (
+ "groups_id" INTEGER,
+ "groups_name" TEXT,
+ "groups_is_admin" INTEGER,
+ "groups_owner_id" INTEGER
+ )';
+
+ */
+ $conn = gwvp_ConnectDB();
+
+ if($groupname != null) {
+ $sql = "update groups set groups_name='$groupname' where groups_id='$groupid'";
+ $conn->query($sql);
+ }
+
+ if($group_is_admin != null) {
+ $sql = "update groups set groups_is_admin='$group_is_admin' where groups_id='$groupid'";
+ $conn->query($sql);
+ }
+
+ if($groups_owner_id != null) {
+ $sql = "update groups set groups_owner_id='$groups_owner_id' where groups_id='$groupid'";
+ $conn->query($sql);
+ }
+ return true;
}
/* functions we'll need to access data:
*