removed check about user disabled
[brisk.git] / web / Obj / dbase_pgsql.phh
index 6bdb294..2b4467c 100644 (file)
@@ -133,8 +133,8 @@ class BriskDB
         /* check the existence of the nick in the BriskDB */
         log_main("login_exists: ".$login);
 
-        $user_sql = sprintf("SELECT * FROM %susers WHERE login = lower('%s') AND (type & CAST (X'%08x' as integer)) = 0;",
-                            $G_dbpfx, escsql($login), USER_FLAG_TY_DISABLE);
+        $user_sql = sprintf("SELECT * FROM %susers WHERE login = lower('%s')",
+                            $G_dbpfx, escsql($login));
         if (($user_pg = $this->query($user_sql)) != FALSE)
             if (pg_numrows($user_pg) == 1)
                 return TRUE;
@@ -160,9 +160,9 @@ class BriskDB
     function user_add($login, $pass, $email, $type, $disa_reas, $guar_code) {
         GLOBAL $G_dbpfx;
 
-        $usr_sql = sprintf("INSERT INTO %susers (login, pass, email, type, disa_reas, guar_code
-                            VALUES ('%s', '%s', '%s', %d, %d, %d) RETURNING *;",
-                           $G_dbpfx, escsql(strtolower($login)), escsql($pass), escsql($email), 
+        $usr_sql = sprintf("INSERT INTO %susers (login, pass, email, type, disa_reas, guar_code, lintm)
+                            VALUES ('%s', '%s', '%s', %d, %d, %d, now()) RETURNING *;",
+                           $G_dbpfx, escsql(strtolower($login)), escsql($pass), escsql($email),
                            $type, $disa_reas, $guar_code);
 
         if (! (($usr_pg  = $this->query($usr_sql)) != FALSE && pg_affected_rows($usr_pg) == 1) ) {
@@ -185,6 +185,9 @@ class BriskDB
         return (TRUE);
     }
 
+    /*
+      to be able to add mail record code into the record itself I must reserve it before.
+     */
     function mail_reserve_code() {
         GLOBAL $G_dbpfx;
 
@@ -249,6 +252,37 @@ class BriskDB
         return TRUE;
     }
 
+    function user_update_flag_ty($code, $old_type, $old_reas, $type, $reas)
+    {
+        GLOBAL $G_dbpfx;
+
+        // (u.type & (CAST (X'00ff0000' as integer)))
+
+        $user_sql = sprintf("UPDATE %susers SET (type, disa_reas) = ((%d & (CAST (X'00ff0000' as integer))), %d)
+WHERE code = %d AND (type & CAST (X'%08x' as integer)) != 0 AND disa_reas = %d;",
+                            $G_dbpfx, $type, $reas, $code, $old_type, $old_reas);
+
+        if ( ! (($user_pg  = $this->query($user_sql)) != FALSE && pg_affected_rows($user_pg) == 1) ) {
+             return FALSE;
+        }
+
+        return TRUE;
+    }
+
+    function user_update_passwd($code, $passwd)
+    {
+        GLOBAL $G_dbpfx;
+
+        $user_sql = sprintf("UPDATE %susers SET (pass) = (md5('%s')) WHERE code = %d;",
+                            $G_dbpfx, $passwd, $code);
+
+        if ( ! (($user_pg  = $this->query($user_sql)) != FALSE && pg_affected_rows($user_pg) == 1) ) {
+             return FALSE;
+        }
+
+        return TRUE;
+    }
+
     function user_prefs_update($code, $flags, $supp_comp)
     {
         GLOBAL $G_dbpfx;
@@ -689,6 +723,53 @@ class BriskDB
         return $ret;
     }
 
+    function mail_add_fromitem($mail) {
+        GLOBAL $G_dbpfx;
+
+        $usr_sql = sprintf("
+INSERT INTO %smails (code, ucode, type, tstamp, subj, body_txt, body_htm, hash)
+            VALUES (%d, %d, %d, to_timestamp(%d), '%s', '%s', '%s', '%s') RETURNING *;",
+                           $G_dbpfx, $mail->code, $mail->ucode, $mail->type, $mail->tstamp,
+                           escsql($mail->subj), escsql($mail->body_txt), escsql($mail->body_htm),
+                           ($mail->hash == NULL ? "" : escsql($mail->hash))
+                           );
+
+        if (! (($usr_pg  = $this->query($usr_sql)) != FALSE && pg_affected_rows($usr_pg) == 1) ) {
+            return FALSE;
+        }
+        $usr_obj = pg_fetch_object($usr_pg, 0);
+
+        return $usr_obj;
+    }
+
+    function mail_check($code, $type, $hash)
+    {
+        GLOBAL $G_dbpfx;
+
+        $mai_sql = sprintf("SELECT * FROM %smails WHERE code = %d AND type = %d AND hash = '%s';",
+                           $G_dbpfx, $code, $type, escsql($hash));
+        if (($mai_pg  = $this->query($mai_sql)) == FALSE || pg_numrows($mai_pg) != 1) {
+            // check failed
+            return (FALSE);
+        }
+
+        $mai_obj = pg_fetch_object($mai_pg, 0);
+        return ($mai_obj);
+    }
+
+    function mail_delete($code)
+    {
+        GLOBAL $G_dbpfx;
+
+        $mai_sql = sprintf("DELETE FROM %smails WHERE code = %d;", $G_dbpfx, $code);
+
+        if (($mai_pg = $this->query($mai_sql)) == FALSE || pg_affected_rows($mai_pg) != 1) {
+            return (FALSE);
+        }
+        return (TRUE);
+    }
+
+
 } // End class BriskDB
 
 class LoginDBOld