var $profile;
var $err;
- function prepare($args)
+ protected function prepare(array $args=array())
{
parent::prepare($args);
if (common_logged_in()) {
// TRANS: Client error.
$this->clientError(_m('You can use the local subscription!'));
- return false;
}
// Local user or group the remote wants to subscribe to
return true;
}
- function handle($args)
+ protected function handle()
{
- parent::handle($args);
+ parent::handle();
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
/* Use a session token for CSRF protection. */
// TRANS: Field label.
$this->input('profile', _m('Profile Account'), $this->profile,
// TRANS: Tooltip for field label "Profile Account".
- _m('Your account ID (e.g. user@identi.ca).'));
+ _m('Your account ID (e.g. user@example.com).'));
$this->elementEnd('li');
$this->elementEnd('ul');
$this->submit('submit', $submit);
function ostatusConnect()
{
+ $validate = new Validate();
$opts = array('allowed_schemes' => array('http', 'https', 'acct'));
- if (Validate::uri($this->profile, $opts)) {
+ if ($validate->uri($this->profile, $opts)) {
$bits = parse_url($this->profile);
if ($bits['scheme'] == 'acct') {
$this->connectWebfinger($bits['path']);
$link = $xrd->get('http://ostatus.org/schema/1.0/subscribe');
if (!is_null($link)) {
// We found a URL - let's redirect!
- $url = Discovery::applyTemplate($link['template'], $target_profile);
+ if (!empty($link->template)) {
+ $url = Discovery::applyTemplate($link->template, $target_profile);
+ } else {
+ $url = $link->href;
+ }
common_log(LOG_INFO, "Sending remote subscriber $acct to $url");
common_redirect($url, 303);
}
}
} else if ($this->group) {
$group = Local_group::getKV('nickname', $this->group);
- if ($group) {
+ if ($group instanceof Local_group) {
return common_local_url('groupbyid', array('id' => $group->group_id));
} else {
// TRANS: Client error.