summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--actions/finishopenidlogin.php2
-rw-r--r--actions/newnotice.php4
-rw-r--r--actions/register.php2
-rw-r--r--actions/userbyid.php36
-rw-r--r--htaccess.sample2
-rw-r--r--lib/util.php11
6 files changed, 53 insertions, 4 deletions
diff --git a/actions/finishopenidlogin.php b/actions/finishopenidlogin.php
index 703334453..27e5057ec 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 a3ba4c9cc..6d98c820c 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 c167701fd..3ed892e7f 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 000000000..9de32406a
--- /dev/null
+++ b/actions/userbyid.php
@@ -0,0 +1,36 @@
+<?php
+/*
+ * Laconica - a distributed open-source microblogging tool
+ * Copyright (C) 2008, Controlez-Vous, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+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 cd8ba1003..41ae878c6 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&notice=$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 e137799f2..ae6752653 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));
+}