summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: d1d3dde)
raw | patch | inline | side by side (parent: d1d3dde)
author | hickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Wed, 12 Nov 2008 10:57:50 +0000 (10:57 +0000) | ||
committer | hickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Wed, 12 Nov 2008 10:57:50 +0000 (10:57 +0000) |
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@13007 594d385d-05f5-0310-b6e9-bd551577e9d8
gosa-core/html/main.php | patch | blob | history | |
gosa-core/ihtml/themes/default/framework.tpl | patch | blob | history | |
gosa-core/include/functions.inc | patch | blob | history |
index 5ffd3d92e0c71ac3d47b793c2a3d7fd465f64712..9a47467c43fe7d2fa71a62f3bbe3c8d4b75138ad 100644 (file)
--- a/gosa-core/html/main.php
+++ b/gosa-core/html/main.php
/* Set the text domain as 'messages' */
$domain = 'messages';
+$object_id = "";
bindtextdomain($domain, LOCALE_DIR);
textdomain($domain);
} else {
$old_plugin_dir= "";
}
-if (isset($_GET['plug']) && $plist->plugin_access_allowed($_GET['plug'])){
- $plug= validate($_GET['plug']);
- $plugin_dir= $plist->get_path($plug);
- session::set('plugin_dir',$plugin_dir);
- if ($plugin_dir == ""){
- new log("security","gosa","",array(),"main.php called with invalid plug parameter \"$plug\"") ;
- header ("Location: logout.php");
- exit;
+
+if (isset($_GET['plug'])){
+ $plug=preg_replace("/:.*$/","",validate($_GET['plug']));
+ if($plist->plugin_access_allowed($plug)){
+ $plugin_dir= $plist->get_path($plug);
+ session::set('plugin_dir',$plugin_dir);
+ if ($plugin_dir == ""){
+ new log("security","gosa","",array(),"main.php called with invalid plug parameter \"$plug\"") ;
+ header ("Location: logout.php");
+ exit;
+ }
+ }else{
+ session::set('plugin_dir',"welcome");
+ $plugin_dir= "$BASE_DIR/plugins/generic/welcome";
}
} else {
-
- /* set to welcome page as default plugin */
session::set('plugin_dir',"welcome");
$plugin_dir= "$BASE_DIR/plugins/generic/welcome";
}
/* Load plugin */
if (is_file("$plugin_dir/main.inc")){
+ $o_id = get_current_object_id();
+ if(!empty($o_id)){
+ $plug .= ":".base64_encode($o_id);
+ $_GET['plug'] .= ":".base64_encode($o_id);
+ }
require_once ("$plugin_dir/main.inc");
} else {
msg_dialog::display(
$focus.= 'next_msg_dialog();';
$focus.= '</script>';
$smarty->assign("focus", $focus);
+$o_id = get_current_object_id();
+if(!empty($o_id)){
+ $smarty->assign("object_id", base64_encode($o_id));
+}else{
+ $smarty->assign("object_id", "");
+}
$display= $header.$smarty->fetch(get_template_path('framework.tpl'));
diff --git a/gosa-core/ihtml/themes/default/framework.tpl b/gosa-core/ihtml/themes/default/framework.tpl
index 4d9f8f9b1e87208f37c18944268836135d2e8883..205a6abccf15ee03c2e2e5fce3ff25b21bae5eed 100644 (file)
</table>
</td>
</tr>
-</table>{$errors}{$focus}<input type="hidden" name="php_c_check" value="1"></form></body></html>
+</table>{$errors}{$focus}<input type='hidden' name='object_id' value='{$object_id}'><input type="hidden" name="php_c_check" value="1"></form></body></html>
index ba46e840db640eba6469a22e0dd6418e9ac46c74..0ab3e73c862605342ab18e6969d3868ca21845f5 100644 (file)
}
+function get_current_object_id()
+{
+ global $object_id;
+ if(empty($object_id)){
+ if(isset($_POST['object_id']) && !empty($_POST['object_id'])){
+ $object_id = base64_decode(validate($_POST['object_id']));
+ }elseif(isset($_GET['plug'])){
+ $object_id = base64_decode(preg_replace("/^.*:/","",validate($_GET['plug'])));
+ }
+ }
+ return($object_id);
+}
+
+
+function set_current_object($id,&$object)
+{
+ global $object_id;
+ if(!session::is_set('OBJECTS')){
+ session::set('OBJECTS', array());
+ }
+ $objs = &session::get('OBJECTS');
+ $objs[$id] = $object;
+ $object_id = $id;
+}
+
// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
?>