From 7d5ee81628a08dd560f7fdaa5b4d5a3f5ce3fb95 Mon Sep 17 00:00:00 2001 From: zotlabs Date: Tue, 25 Apr 2017 21:52:24 -0700 Subject: database support for client side e2ee for private mail --- Zotlabs/Module/Mail.php | 20 ++++++++++---------- boot.php | 2 +- include/message.php | 6 ++++-- install/schema_mysql.sql | 2 ++ install/schema_postgres.sql | 2 ++ install/update.php | 13 ++++++++++++- 6 files changed, 31 insertions(+), 14 deletions(-) diff --git a/Zotlabs/Module/Mail.php b/Zotlabs/Module/Mail.php index 2fb89fed5..52f1ddf32 100644 --- a/Zotlabs/Module/Mail.php +++ b/Zotlabs/Module/Mail.php @@ -113,18 +113,18 @@ class Mail extends \Zotlabs\Web\Controller { if($preview) { $mail = [ - 'mailbox' => 'outbox', - 'id' => 0, - 'mid' => 'M0', - 'from_name' => $channel['xchan_name'], - 'from_url' => $channel['xchan_url'], - 'from_photo' => $channel['xchan_photo_s'], - 'subject' => zidify_links(smilies(bbcode($subject))), - 'body' => zidify_links(smilies(bbcode($body))), + 'mailbox' => 'outbox', + 'id' => 0, + 'mid' => 'M0', + 'from_name' => $channel['xchan_name'], + 'from_url' => $channel['xchan_url'], + 'from_photo' => $channel['xchan_photo_s'], + 'subject' => zidify_links(smilies(bbcode($subject))), + 'body' => zidify_links(smilies(bbcode($body))), 'attachments' => '', - 'can_recall' => false, + 'can_recall' => false, 'is_recalled' => '', - 'date' => datetime_convert('UTC',date_default_timezone_get(),$message['created'], 'c') + 'date' => datetime_convert('UTC',date_default_timezone_get(),$message['created'], 'c') ]; echo replace_macros(get_markup_template('mail_conv.tpl'), [ '$mail' => $mail ] ); diff --git a/boot.php b/boot.php index 38de30d6e..a61d12f26 100755 --- a/boot.php +++ b/boot.php @@ -52,7 +52,7 @@ define ( 'PLATFORM_NAME', 'hubzilla' ); define ( 'STD_VERSION', '2.3.4' ); define ( 'ZOT_REVISION', '1.2' ); -define ( 'DB_UPDATE_VERSION', 1189 ); +define ( 'DB_UPDATE_VERSION', 1190 ); define ( 'PROJECT_BASE', __DIR__ ); diff --git a/include/message.php b/include/message.php index da3514184..e7db98d7e 100644 --- a/include/message.php +++ b/include/message.php @@ -188,9 +188,10 @@ function send_message($uid = 0, $recipient = '', $body = '', $subject = '', $rep $body = str_rot47(base64url_encode($body)); $sig = ''; // placeholder + $mimetype = ''; //placeholder - $r = q("INSERT INTO mail ( account_id, conv_guid, mail_obscured, channel_id, from_xchan, to_xchan, title, body, sig, attach, mid, parent_mid, created, expires, mail_isreply ) - VALUES ( %d, '%s', %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d )", + $r = q("INSERT INTO mail ( account_id, conv_guid, mail_obscured, channel_id, from_xchan, to_xchan, mail_mimetype, title, body, sig, attach, mid, parent_mid, created, expires, mail_isreply ) + VALUES ( %d, '%s', %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d )", intval($channel['channel_account_id']), dbesc($conv_guid), intval(1), @@ -198,6 +199,7 @@ function send_message($uid = 0, $recipient = '', $body = '', $subject = '', $rep dbesc($channel['channel_hash']), dbesc($recipient), dbesc($subject), + dbesc(($mimetype)? $mimetype : 'text/bbcode'), dbesc($body), dbesc($sig), dbesc($jattach), diff --git a/install/schema_mysql.sql b/install/schema_mysql.sql index e075006e1..b64c1ae61 100644 --- a/install/schema_mysql.sql +++ b/install/schema_mysql.sql @@ -763,6 +763,7 @@ CREATE TABLE IF NOT EXISTS `mail` ( `to_xchan` char(255) NOT NULL DEFAULT '', `account_id` int(10) unsigned NOT NULL DEFAULT '0', `channel_id` int(10) unsigned NOT NULL DEFAULT '0', + `mail_mimetype` char(64) NOT NULL DEFAULT 'text/bbcode', `title` text NOT NULL, `body` mediumtext NOT NULL, `sig` text NOT NULL, @@ -775,6 +776,7 @@ CREATE TABLE IF NOT EXISTS `mail` ( `mail_seen` tinyint(4) NOT NULL DEFAULT '0', `mail_recalled` tinyint(4) NOT NULL DEFAULT '0', `mail_obscured` smallint(6) NOT NULL DEFAULT '0', + `mail_raw` tinyint(4) NOT NULL DEFAULT '0', `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `expires` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', PRIMARY KEY (`id`), diff --git a/install/schema_postgres.sql b/install/schema_postgres.sql index be72a85e1..0328040f4 100644 --- a/install/schema_postgres.sql +++ b/install/schema_postgres.sql @@ -751,6 +751,7 @@ CREATE TABLE "mail" ( "to_xchan" text NOT NULL DEFAULT '', "account_id" bigint NOT NULL DEFAULT '0', "channel_id" bigint NOT NULL DEFAULT '0', + "mail_mimetype char(64) NOT NULL DEFAULT '0', "title" text NOT NULL, "body" text NOT NULL, "sig" text NOT NULL, @@ -763,6 +764,7 @@ CREATE TABLE "mail" ( "mail_seen" smallint NOT NULL DEFAULT '0', "mail_recalled" smallint NOT NULL DEFAULT '0', "mail_obscured" smallint NOT NULL DEFAULT '0', + "mail_raw" smallint NOT NULL DEFAULT '0', "created" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00', "expires" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00', PRIMARY KEY ("id") diff --git a/install/update.php b/install/update.php index b37af9cef..84f1a799c 100644 --- a/install/update.php +++ b/install/update.php @@ -1,6 +1,6 @@