From 775e53a5d7d5485879b6af01d4358cbaff48babe Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Thu, 24 Nov 2005 16:55:28 +0000
Subject: [PATCH] Fixed bug in tform_actions

---
 interface/lib/classes/plugin_listview.inc.php |  1 +
 interface/lib/classes/tform_actions.inc.php   | 12 ++++++------
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/interface/lib/classes/plugin_listview.inc.php b/interface/lib/classes/plugin_listview.inc.php
index 0b1267720..fe57834ad 100644
--- a/interface/lib/classes/plugin_listview.inc.php
+++ b/interface/lib/classes/plugin_listview.inc.php
@@ -77,6 +77,7 @@ class plugin_listview extends plugin_base {
                 // Setting Returnto information in the session
                 $list_name = $app->listform->listDef["name"];
                 $_SESSION["s"]["list"][$list_name]["parent_id"] = $app->tform_actions->id;
+				$_SESSION["s"]["list"][$list_name]["parent_name"] = $app->tform->formDef["name"];
                 $_SESSION["s"]["list"][$list_name]["parent_tab"] = $_SESSION["s"]["form"]["tab"];
                 $_SESSION["s"]["list"][$list_name]["parent_script"] = $app->tform->formDef["action"];
                 $_SESSION["s"]["form"]["return_to"] = $list_name;
diff --git a/interface/lib/classes/tform_actions.inc.php b/interface/lib/classes/tform_actions.inc.php
index f90c0559e..28b23b01a 100644
--- a/interface/lib/classes/tform_actions.inc.php
+++ b/interface/lib/classes/tform_actions.inc.php
@@ -115,8 +115,8 @@ class tform_actions {
                         }
 
                         if($_REQUEST["next_tab"] == '') {
-                                if($_SESSION["s"]["form"]["return_to"] != '') {
-                                        $list_name = $_SESSION["s"]["form"]["return_to"];
+                                $list_name = $_SESSION["s"]["form"]["return_to"];
+								if($list_name != '' && $_SESSION["s"]["list"][$list_name]["parent_id"] != $this->id && $_SESSION["s"]["list"][$list_name]["parent_name"] != $app->tform->formDef["name"]) {
                                         $redirect = "Location: ".$_SESSION["s"]["list"][$list_name]["parent_script"]."?id=".$_SESSION["s"]["list"][$list_name]["parent_id"]."&next_tab=".$_SESSION["s"]["list"][$list_name]["parent_tab"];
                                         $_SESSION["s"]["form"]["return_to"] = '';
                                         session_write_close();
@@ -153,8 +153,8 @@ class tform_actions {
                         }
 
                         if($_REQUEST["next_tab"] == '') {
-                            if($_SESSION["s"]["form"]["return_to"] != '') {
-                                        $list_name = $_SESSION["s"]["form"]["return_to"];
+                            $list_name = $_SESSION["s"]["form"]["return_to"];
+								if($list_name != '' && $_SESSION["s"]["list"][$list_name]["parent_id"] != $this->id && $_SESSION["s"]["list"][$list_name]["parent_name"] != $app->tform->formDef["name"]) {
                                         $redirect = "Location: ".$_SESSION["s"]["list"][$list_name]["parent_script"]."?id=".$_SESSION["s"]["list"][$list_name]["parent_id"]."&next_tab=".$_SESSION["s"]["list"][$list_name]["parent_tab"];
                                         $_SESSION["s"]["form"]["return_to"] = '';
                                         session_write_close();
@@ -236,8 +236,8 @@ class tform_actions {
                 }
 
                 //header("Location: ".$liste["file"]."?PHPSESSID=".$_SESSION["s"]["id"]);
-                if($_SESSION["s"]["form"]["return_to"] != '') {
-                        $list_name = $_SESSION["s"]["form"]["return_to"];
+                $list_name = $_SESSION["s"]["form"]["return_to"];
+				if($list_name != '' && $_SESSION["s"]["list"][$list_name]["parent_id"] != $this->id && $_SESSION["s"]["list"][$list_name]["parent_name"] != $app->tform->formDef["name"]) {
                         $redirect = "Location: ".$_SESSION["s"]["list"][$list_name]["parent_script"]."?id=".$_SESSION["s"]["list"][$list_name]["parent_id"]."&next_tab=".$_SESSION["s"]["list"][$list_name]["parent_tab"];
                         $_SESSION["s"]["form"]["return_to"] = '';
                         session_write_close();
-- 
GitLab