Publish MicroIDs for email and mpp on profile and notice pages.

darcs-hash:20080721120036-edabd-838335c0e23c80a657d353955b25b52a9a8624b2.gz
This commit is contained in:
mikec 2008-07-21 08:00:36 -04:00
parent fbf2a58ac3
commit 334c652e80
6 changed files with 42 additions and 12 deletions

View File

@ -83,14 +83,11 @@ class EmailsettingsAction extends SettingsAction {
}
common_element('h2', NULL, _('Preferences'));
common_checkbox('emailnotifysub',
_('Send me notices of new subscriptions through email.'),
$user->emailnotifysub);
common_checkbox('emailpost',
_('I want to post notices by email.'),
$user->emailpost);
_('Send me notices of new subscriptions through email.'),
$user->emailnotifysub);
common_submit('save', _('Save'));
common_element_end('form');
@ -131,8 +128,7 @@ class EmailsettingsAction extends SettingsAction {
function save_preferences() {
$emailnotifysub = $this->boolean('emailnotifysub');
$emailpost = $this->boolean('emailpost');
$user = common_current_user();
assert(!is_null($user)); # should already be checked
@ -142,7 +138,6 @@ class EmailsettingsAction extends SettingsAction {
$original = clone($user);
$user->emailnotifysub = $emailnotifysub;
$user->emailpost = $emailpost;
$result = $user->update($original);

View File

@ -75,6 +75,9 @@ class ImsettingsAction extends SettingsAction {
common_checkbox('jabberreplies',
_('Send me replies through Jabber/GTalk from people I\'m not subscribed to.'),
$user->jabberreplies);
common_checkbox('jabbermicroid',
_('Publish a MicroID for my Jabber/GTalk address.'),
$user->jabbermicroid);
common_submit('save', _('Save'));
common_element_end('form');
@ -113,6 +116,7 @@ class ImsettingsAction extends SettingsAction {
$jabbernotify = $this->boolean('jabbernotify');
$updatefrompresence = $this->boolean('updatefrompresence');
$jabberreplies = $this->boolean('jabberreplies');
$jabbermicroid = $this->boolean('jabbermicroid');
$user = common_current_user();
@ -125,6 +129,7 @@ class ImsettingsAction extends SettingsAction {
$user->jabbernotify = $jabbernotify;
$user->updatefrompresence = $updatefrompresence;
$user->jabberreplies = $jabberreplies;
$user->jabbermicroid = $jabbermicroid;
$result = $user->update($original);

View File

@ -43,7 +43,7 @@ class ShownoticeAction extends StreamAction {
# Looks like we're good; show the header
common_show_header(sprintf(_('%1$s\'s status on %2$s'), $profile->nickname, common_exact_date($notice->created)),
NULL, $profile,
array($this, 'show_header'), $notice,
array($this, 'show_top'));
common_element_start('ul', array('id' => 'notices'));
@ -53,7 +53,25 @@ class ShownoticeAction extends StreamAction {
common_show_footer();
}
function show_top($user) {
function show_header($notice)
{
$profile = $notice->getProfile();
$user = User::staticGet($profile->id);
if (!$user) {
return;
}
if ($user->emailmicroid && $user->email && $notice->uri) {
common_element('meta', array('name' => 'microid',
'content' => "mailto+http:sha1:" . sha1(sha1('mailto:' . $user->email) . sha1($notice->uri))));
}
if ($user->jabbermicroid && $user->jabber && $notice->uri) {
common_element('meta', array('name' => 'microid',
'content' => "xmpp+http:sha1:" . sha1(sha1('xmpp:' . $user->jabber) . sha1($notice->uri))));
}
}
function show_top($notice) {
$user = $notice->getProfile();
$cur = common_current_user();
if ($cur && $cur->id == $user->id) {

View File

@ -94,6 +94,16 @@ class ShowstreamAction extends StreamAction {
common_element('meta', array('name' => 'description',
'content' => $profile->bio));
}
if ($user->emailmicroid && $user->email && $profile->profileurl) {
common_element('meta', array('name' => 'microid',
'content' => "mailto+http:sha1:" . sha1(sha1('mailto:' . $user->email) . sha1($profile->profileurl))));
}
if ($user->jabbermicroid && $user->jabber && $profile->profileurl) {
common_element('meta', array('name' => 'microid',
'content' => "xmpp+http:sha1:" . sha1(sha1('xmpp:' . $user->jabber) . sha1($profile->profileurl))));
}
}
function no_such_user() {

View File

@ -39,6 +39,7 @@ class User extends DB_DataObject
public $jabber; // varchar(255) unique_key
public $jabbernotify; // tinyint(1)
public $jabberreplies; // tinyint(1)
public $jabbermicroid; // tinyint(1) default_1
public $updatefrompresence; // tinyint(1)
public $sms; // varchar(64) unique_key
public $carrier; // int(4)

View File

@ -50,6 +50,7 @@ create table user (
jabber varchar(255) unique key comment 'jabber ID for notices',
jabbernotify tinyint default 0 comment 'whether to send notices to jabber',
jabberreplies tinyint default 0 comment 'whether to send notices to jabber on replies',
jabbermicroid tinyint default 1 comment 'whether to publish xmpp microid',
updatefrompresence tinyint default 0 comment 'whether to record updates from Jabber presence notices',
sms varchar(64) unique key comment 'sms phone number',
carrier integer comment 'foreign key to sms_carrier' references sms_carrier (id),