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]");