function to manage user type and password on db added
[brisk.git] / web / Obj / dbase_pgsql.phh
index 6bdb294..4774918 100644 (file)
@@ -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,25 @@ 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;
+    }
+
 } // End class BriskDB
 
 class LoginDBOld