|
@@ -31,6 +31,8 @@ our $rightbar = 'rightbar.tx';
|
|
|
our $leftbar = 'leftbar.tx';
|
|
our $leftbar = 'leftbar.tx';
|
|
|
our $footbar = 'footbar.tx';
|
|
our $footbar = 'footbar.tx';
|
|
|
|
|
|
|
|
|
|
+# Note to maintainers: never ever remove backends from this list.
|
|
|
|
|
+# the auth => 1 is a crucial protection, even with forbidden() guards in these routes.
|
|
|
our %routes = (
|
|
our %routes = (
|
|
|
default => {
|
|
default => {
|
|
|
callback => \&Trog::Routes::HTML::setup,
|
|
callback => \&Trog::Routes::HTML::setup,
|
|
@@ -81,8 +83,24 @@ our %routes = (
|
|
|
auth => 1,
|
|
auth => 1,
|
|
|
callback => \&Trog::Routes::HTML::themeclone,
|
|
callback => \&Trog::Routes::HTML::themeclone,
|
|
|
},
|
|
},
|
|
|
|
|
+ '/profile' => {
|
|
|
|
|
+ method => 'POST',
|
|
|
|
|
+ auth => 1,
|
|
|
|
|
+ callback => \&Trog::Routes::HTML::profile,
|
|
|
|
|
+ },
|
|
|
|
|
+ '/manual' => {
|
|
|
|
|
+ method => 'GET',
|
|
|
|
|
+ auth => 1,
|
|
|
|
|
+ callback => \&Trog::Routes::HTML::manual,
|
|
|
|
|
+ },
|
|
|
|
|
+ '/lib/(.*)' => {
|
|
|
|
|
+ method => 'GET',
|
|
|
|
|
+ auth => 1,
|
|
|
|
|
+ captures => ['module'],
|
|
|
|
|
+ callback => \&Trog::Routes::HTML::manual,
|
|
|
|
|
+ },
|
|
|
|
|
|
|
|
- # Can also be made into posts
|
|
|
|
|
|
|
+ #TODO transform intoposts
|
|
|
'/sitemap', => {
|
|
'/sitemap', => {
|
|
|
method => 'GET',
|
|
method => 'GET',
|
|
|
callback => \&Trog::Routes::HTML::sitemap,
|
|
callback => \&Trog::Routes::HTML::sitemap,
|
|
@@ -134,31 +152,11 @@ our %routes = (
|
|
|
data => { tag => ['about'] },
|
|
data => { tag => ['about'] },
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
- '/posts' => {
|
|
|
|
|
- method => 'GET',
|
|
|
|
|
- callback => \&Trog::Routes::HTML::posts,
|
|
|
|
|
- },
|
|
|
|
|
- '/profile' => {
|
|
|
|
|
- method => 'POST',
|
|
|
|
|
- auth => 1,
|
|
|
|
|
- callback => \&Trog::Routes::HTML::profile,
|
|
|
|
|
- },
|
|
|
|
|
'/users/(.*)' => {
|
|
'/users/(.*)' => {
|
|
|
method => 'GET',
|
|
method => 'GET',
|
|
|
callback => \&Trog::Routes::HTML::users,
|
|
callback => \&Trog::Routes::HTML::users,
|
|
|
captures => ['username'],
|
|
captures => ['username'],
|
|
|
},
|
|
},
|
|
|
- '/manual' => {
|
|
|
|
|
- method => 'GET',
|
|
|
|
|
- auth => 1,
|
|
|
|
|
- callback => \&Trog::Routes::HTML::manual,
|
|
|
|
|
- },
|
|
|
|
|
- '/lib/(.*)' => {
|
|
|
|
|
- method => 'GET',
|
|
|
|
|
- auth => 1,
|
|
|
|
|
- captures => ['module'],
|
|
|
|
|
- callback => \&Trog::Routes::HTML::manual,
|
|
|
|
|
- },
|
|
|
|
|
);
|
|
);
|
|
|
|
|
|
|
|
#XXX these need to be fetched dynamically from all the header categories?
|
|
#XXX these need to be fetched dynamically from all the header categories?
|
|
@@ -693,7 +691,13 @@ Implements direct user profile view.
|
|
|
=cut
|
|
=cut
|
|
|
|
|
|
|
|
sub users ($query, $render_cb) {
|
|
sub users ($query, $render_cb) {
|
|
|
|
|
+ # Capture the username
|
|
|
|
|
+ my (undef, undef, $username) = split(/\//, $query->{route});
|
|
|
|
|
+
|
|
|
|
|
+ $query->{username} //= $username;
|
|
|
push(@{$query->{acls}}, 'public');
|
|
push(@{$query->{acls}}, 'public');
|
|
|
|
|
+ $query->{exclude_tags} = ['about'];
|
|
|
|
|
+
|
|
|
my @posts = _post_helper({ limit => 10000 }, ['about'], $query->{acls});
|
|
my @posts = _post_helper({ limit => 10000 }, ['about'], $query->{acls});
|
|
|
my @user = grep { $_->{user} eq $query->{username} } @posts;
|
|
my @user = grep { $_->{user} eq $query->{username} } @posts;
|
|
|
$query->{id} = $user[0]->{id};
|
|
$query->{id} = $user[0]->{id};
|
|
@@ -858,7 +862,7 @@ sub posts ($query, $render_cb, $direct=0) {
|
|
|
failure => $query->{failure},
|
|
failure => $query->{failure},
|
|
|
to => $query->{to},
|
|
to => $query->{to},
|
|
|
message => $query->{failure} ? "Failed to add post!" : "Successfully added Post as $query->{id}",
|
|
message => $query->{failure} ? "Failed to add post!" : "Successfully added Post as $query->{id}",
|
|
|
- direct => !!$id,
|
|
|
|
|
|
|
+ direct => $direct,
|
|
|
title => $query->{title},
|
|
title => $query->{title},
|
|
|
style => $query->{style},
|
|
style => $query->{style},
|
|
|
posts => \@posts,
|
|
posts => \@posts,
|