diff --git a/actions/finishopenidlogin.php b/actions/finishopenidlogin.php index 7033344537..27e5057ec1 100644 --- a/actions/finishopenidlogin.php +++ b/actions/finishopenidlogin.php @@ -223,7 +223,7 @@ class FinishopenidloginAction extends Action { $user = new User(); $user->id = $id; $user->nickname = $nickname; - $user->uri = common_mint_tag('user:'.$id); + $user->uri = common_user_uri($user); if ($sreg['email'] && Validate::email($sreg['email'], true)) { $user->email = $sreg['email']; diff --git a/actions/newnotice.php b/actions/newnotice.php index a3ba4c9ccf..6d98c820cc 100644 --- a/actions/newnotice.php +++ b/actions/newnotice.php @@ -61,7 +61,7 @@ class NewnoticeAction extends Action { } $orig = clone($notice); - $notice->uri = common_mint_tag('notice:' . $id); + $notice->uri = common_notice_uri($notice); if (!$notice->update($orig)) { common_server_error(_t('Problem saving notice.')); @@ -91,4 +91,4 @@ class NewnoticeAction extends Action { common_notice_form(); common_show_footer(); } -} \ No newline at end of file +} diff --git a/actions/register.php b/actions/register.php index c167701fd7..3ed892e7ff 100644 --- a/actions/register.php +++ b/actions/register.php @@ -107,7 +107,7 @@ class RegisterAction extends Action { $user->nickname = $nickname; $user->password = common_munge_password($password, $id); $user->created = DB_DataObject_Cast::dateTime(); # current time - $user->uri = common_mint_tag('user:'.$id); + $user->uri = common_user_uri($user); $result = $user->insert(); if (!$result) { diff --git a/actions/userbyid.php b/actions/userbyid.php new file mode 100644 index 0000000000..9de32406a5 --- /dev/null +++ b/actions/userbyid.php @@ -0,0 +1,36 @@ +. + */ + +if (!defined('LACONICA')) { exit(1); } + +class UserbyidAction extends Action { + function handle($args) { + parent::handle($args); + $id = $this->trimmed('id'); + if (!$id) { + $this->client_error(_t('No id.')); + } + $user =& User::staticGet($id); + if (!$id) { + $this->client_error(_t('No such user.')); + } + common_redirect('showstream', + array('nickname' => $user->nickname)); + } +} diff --git a/htaccess.sample b/htaccess.sample index cd8ba10038..41ae878c63 100644 --- a/htaccess.sample +++ b/htaccess.sample @@ -27,6 +27,8 @@ RewriteRule ^settings/openid$ index.php?action=openidsettings [L,QSA] RewriteRule ^notice/new$ index.php?action=newnotice [L,QSA] RewriteRule ^notice/(\d+)$ index.php?action=shownotice¬ice=$1 [L,QSA] +RewriteRule ^user/(\d+)$ index.php?action=userbyid&id=$1 [L,QSA] + RewriteRule ^(\w+)/subscriptions$ index.php?action=subscriptions&nickname=$1 [L,QSA] RewriteRule ^(\w+)/subscribers$ index.php?action=subscribers&nickname=$1 [L,QSA] RewriteRule ^(\w+)/xrds$ index.php?action=xrds&nickname=$1 [L,QSA] diff --git a/lib/util.php b/lib/util.php index e137799f2d..ae6752653d 100644 --- a/lib/util.php +++ b/lib/util.php @@ -572,6 +572,8 @@ function common_fancy_url($action, $args=NULL) { } case 'confirmemail': return common_path('main/confirmemail/'.$args['code']); + case 'userbyid': + return common_path('user/'.$args['id']); default: return common_simple_url($action, $args); } @@ -897,3 +899,12 @@ function common_copy_args($from) { } return $to; } + +function common_user_uri(&$user) { + return common_local_url('userbyid', array('id' => $user->id)); +} + +function common_notice_uri(&$notice) { + return common_local_url('shownotice', + array('notice' => $notice->id)); +}