diff --git a/ext/user/main.php b/ext/user/main.php
index be60faf7..c87fbe8f 100644
--- a/ext/user/main.php
+++ b/ext/user/main.php
@@ -146,7 +146,9 @@ class UserPage extends Extension {
$page->set_mode("redirect");
// Try forwarding to same page on logout unless user comes from registration page
- if (isset($_SERVER['HTTP_REFERER']) && !strstr($_SERVER['HTTP_REFERER'], "user_admin/create"))
+ if ($config->get_int("user_loginshowprofile",0) == 0 &&
+ isset($_SERVER['HTTP_REFERER']) &&
+ strstr($_SERVER['HTTP_REFERER'], "post/"))
$page->set_redirect ($_SERVER['HTTP_REFERER']);
else
$page->set_redirect(make_link());
@@ -278,7 +280,11 @@ class UserPage extends Extension {
array('G'=>'g', 'PG'=>'pg', 'R'=>'r', 'X'=>'x'),
"
Rating: ");
}
-
+
+ $sb->add_choice_option("user_loginshowprofile", array(
+ "return to previous page" => 0, // 0 is default
+ "send to user profile" => 1),
+ "
When user logs in/out");
$event->panel->add_block($sb);
}
@@ -319,6 +325,7 @@ class UserPage extends Extension {
// Things done *with* the user {{{
private function login(Page $page) {
global $user;
+ global $config;
$name = $_POST['user'];
$pass = $_POST['pass'];
@@ -336,12 +343,12 @@ class UserPage extends Extension {
log_info("user", "{$user->class->name} logged in");
$page->set_mode("redirect");
- // Try returning to previous page
- if (isset($_SERVER['HTTP_REFERER']) && !strstr($_SERVER['HTTP_REFERER'], "user_admin/create") &&
- !strstr($_SERVER['HTTP_REFERER'], "user_admin/login"))
- $page->set_redirect ($_SERVER['HTTP_REFERER']);
- else
- $page->set_redirect(make_link("user"));
+ // Try returning to previous page
+ if ($config->get_int("user_loginshowprofile",0) == 0 &&
+ isset($_SERVER['HTTP_REFERER']) &&
+ strstr($_SERVER['HTTP_REFERER'], "post/"))
+ $page->set_redirect($_SERVER['HTTP_REFERER']);
+ else $page->set_redirect(make_link("user"));
}
else {
log_warning("user", "Failed to log in as ".html_escape($name)." [$hash]");