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

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

View File

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

View File

@ -43,7 +43,7 @@ class ShownoticeAction extends StreamAction {
# Looks like we're good; show the header # 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)), 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')); array($this, 'show_top'));
common_element_start('ul', array('id' => 'notices')); common_element_start('ul', array('id' => 'notices'));
@ -53,7 +53,25 @@ class ShownoticeAction extends StreamAction {
common_show_footer(); 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(); $cur = common_current_user();
if ($cur && $cur->id == $user->id) { if ($cur && $cur->id == $user->id) {

View File

@ -94,6 +94,16 @@ class ShowstreamAction extends StreamAction {
common_element('meta', array('name' => 'description', common_element('meta', array('name' => 'description',
'content' => $profile->bio)); '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() { function no_such_user() {

View File

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

View File

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