"user_username" TEXT,
"user_email" TEXT,
"user_desc" TEXT,
- "user_status" INTEGER
+ "user_status" TEXT
)';
$groupsql = '
CREATE TABLE groups (
"groups_id" INTEGER PRIMARY KEY AUTOINCREMENT,
"groups_name" TEXT,
+ "groups_description" TEXT,
"groups_is_admin" INTEGER,
"groups_owner_id" INTEGER
)';
)';
// this looks like null, <repoid>, <read|visible|write>, user:<uid>|group:<gid>|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" (
$DB_CONNECTION->query($groupmemsql);
}
+function gwvp_GetUserStatus($userid)
+{
+ $conn = gwvp_ConnectDB();
+
+ $sql = "select user_status from users where users_id='$userid'";
+
+ $res = $conn->query($sql);
+
+ $return = null;
+ foreach($res as $val) {
+ $spl = explode(";", $val);
+
+ $return["statusid"] = $spl[0];
+ $return["extstatus"] = $spl[1];
+ }
+
+}
+
+function gwvp_SetUserStatus($userid, $status, $extendedstatus=null)
+{
+ /*
+ * user statues
+ * 0 - all good
+ * 1 - locked
+ * 2 - password locked
+ * 3 - awaiting registration completion
+ * 4 - awaiting password reset
+ * where use status = 3,4 the key for unlock is set as the extended status
+ * i.e. if a user goes thru registration, when the validation email gets to
+ * them they'll have a key in their email (128 or 256 bit), thats what
+ * the extended status field is used for
+ */
+
+ $conn = gwvp_ConnectDB();
+
+ if($extendedstatus != null) {
+ $sql = "update users set user_status='$status;$extendedstatus' where users_id='$userid'";
+ } else {
+ $sql = "update users set user_status='$status;0' where users_id='$userid'";
+ }
+
+ return $conn->query($sql);
+
+}
+
+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
return $DB_CONNECTION;
}
+// TODO: we have to define what "Status" is
function gwvp_createUser($email, $fullname, $password, $username, $desc, $status)
{
$conn = gwvp_ConnectDB();
// 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,
$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();
} 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);
return $return;
}
+function gwvp_getGroup($gid = null, $gname = null)
+{
+ /*
+ * $groupsql = '
+ CREATE TABLE groups (
+ "groups_id" INTEGER PRIMARY KEY AUTOINCREMENT,
+ "groups_name" TEXT,
+ "groups_is_admin" INTEGER,
+ "groups_owner_id" INTEGER
+ )';
+
+ */
+ $conn = gwvp_ConnectDB();
+
+ if($gid != null) {
+ $sql = "select * from groups where groups_id='$gid'";
+ } else if ($gname != null) {
+ $sql = "select * from groups where groups_name='$gname'";
+ } else return false;
+
+ $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();
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();
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();
"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);
$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,