commit 55ad99edd03c5c9e0ad759eed430e9cd224b6c65
parent 76365ffb0a4724411c0f02144aad54a92a2aebe0
Author: dankert <devnull@localhost>
Date: Sat, 24 Nov 2007 14:24:10 +0100
Korrektur ?bernahme von Id-Parametern.
Diffstat:
1 file changed, 58 insertions(+), 32 deletions(-)
diff --git a/actionClasses/IndexAction.class.php b/actionClasses/IndexAction.class.php
@@ -162,7 +162,7 @@ class IndexAction extends Action
*/
function showlogin()
{
- global $conf;
+ global $conf;
$sso = $conf['security']['sso'];
$ssl = $conf['security']['ssl'];
@@ -275,15 +275,20 @@ class IndexAction extends Action
if ( is_array($dbconf) && $dbconf['enabled'] )
$dbids[$dbname] = $dbconf['comment'];
}
-
- $this->setTemplateVar('login_name' ,@$conf['security']['default']['username']);
- $this->setTemplateVar('login_password',@$conf['security']['default']['password']);
+
+ if ( !isset($this->templateVars['login_name']) )
+ $this->setTemplateVar('login_name',@$conf['security']['default']['username']);
+
+ if ( $this->templateVars['login_name']== @$conf['security']['default']['username'])
+ $this->setTemplateVar('login_password',@$conf['security']['default']['password']);
$this->setTemplateVar( 'dbids',$dbids );
$db = Session::getDatabase();
if ( is_object($db) )
$this->setTemplateVar('actdbid',$db->id);
+ elseif( isset($this->templateVars['actid']) )
+ ;
else
$this->setTemplateVar('actdbid',$conf['database']['default']);
@@ -639,6 +644,8 @@ class IndexAction extends Action
{
$user = Session::getUser();
$this->addNotice('user',$user->name,'LOGIN_OK',OR_NOTICE_OK,array('name'=>$user->fullname));
+
+ $this->evaluateRequestVars();
}
}
@@ -650,9 +657,26 @@ class IndexAction extends Action
{
global $conf;
$user = Session::getUser();
- $this->setTemplateVar('login_username',$user->name);
+ $this->setTemplateVar('login_username',$user->name);
+
+ // Ausgewählte Objekte merken, um nach dem nä. Login wieder sofort auszuwählen.
+ $o = Session::getObject();
+ if ( is_object($o) )
+ $this->setTemplateVar('objectid',$o->objectid);
+ $p = Session::getProject();
+ if ( is_object($p) )
+ $this->setTemplateVar('projectid',$p->projectid);
+ $l = Session::getProjectLanguage();
+ if ( is_object($l) )
+ $this->setTemplateVar('languageid',$l->languageid);
+ $m = Session::getProjectModel();
+ if ( is_object($m) )
+ $this->setTemplateVar('modelid',$m->modelid);
+ $db = db_connection();
+ if ( is_object($db) )
+ $this->setTemplateVar('dbid',$db->id);
- // Aus Sicherheitsgruenden die komplette Session deaktvieren.
+ // Aus Sicherheitsgruenden die komplette Session deaktvieren.
session_unset();
if ( @$conf['theme']['compiler']['compile_at_logout'])
@@ -661,7 +685,10 @@ class IndexAction extends Action
{
foreach( $actionConfig as $subActionName=>$subaction )
{
- if ( is_array($subaction) && !isset($subaction['goto']) && !isset($subaction['direct']) && !isset($subaction['action']) && $subActionName!='menu' )
+ if ( is_array($subaction) && !isset($subaction['goto']) &&
+ !isset($subaction['direct']) &&
+ !isset($subaction['action']) &&
+ $subActionName != 'menu' )
{
$engine = new TemplateEngine();
$engine->compile( strtolower(str_replace('Action','',$actionName)).'/'.$subActionName);
@@ -783,9 +810,11 @@ class IndexAction extends Action
function model()
{
- $this->evaluateRequestVars( array('modelid'=>$this->getRequestId()) );
+ $this->evaluateRequestVars( array(REQ_PARAM_MODEL_ID=>$this->getRequestId()) );
- $user = Session::getUser();
+ $user = Session::getUser();
+ $project = Session::getProject();
+ $language = Session::getProjectLanguage();
$user->loadRights( $project->projectid,$language->languageid );
Session::setUser( $user );
}
@@ -811,9 +840,9 @@ class IndexAction extends Action
}
- if ( isset($vars['objectid']) )
+ if ( isset($vars[REQ_PARAM_OBJECT_ID]) && Object::available($vars[REQ_PARAM_OBJECT_ID]) )
{
- $object = new Object( $this->getRequestId() );
+ $object = new Object( $this->getRequestVar(REQ_PARAM_OBJECT_ID) );
$object->objectLoadRaw();
Session::setObject( $object );
@@ -821,15 +850,15 @@ class IndexAction extends Action
$project->load();
Session::setProject( $project );
- $language = new Language( isset($vars[REQ_PARAM_LANGUAGE_ID])?$vars[REQ_PARAM_LANGUAGE_ID]:$project->getDefaultLanguageId() );
+ $language = new Language( isset($vars[REQ_PARAM_LANGUAGE_ID])&&Language::available($vars[REQ_PARAM_LANGUAGE_ID])?$vars[REQ_PARAM_LANGUAGE_ID]:$project->getDefaultLanguageId() );
$language->load();
Session::setProjectLanguage( $language );
- $model = new Model( isset($vars['modelid'])?$vars['modelid']:$project->getDefaultModelId() );
+ $model = new Model( isset($vars[REQ_PARAM_MODEL_ID])&&Model::available($vars[REQ_PARAM_MODEL_ID])?$vars[REQ_PARAM_MODEL_ID]:$project->getDefaultModelId() );
$model->load();
Session::setProjectModel( $model );
}
- elseif ( isset($vars[REQ_PARAM_LANGUAGE_ID]) )
+ elseif ( isset($vars[REQ_PARAM_LANGUAGE_ID]) && Language::available($vars[REQ_PARAM_LANGUAGE_ID]) )
{
$language = new Language( $vars[REQ_PARAM_LANGUAGE_ID] );
$language->load();
@@ -847,18 +876,15 @@ class IndexAction extends Action
Session::setProjectModel( $model );
}
- $object = new Object( $project->getRootObjectId() );
+ $object = Session::getObject();
+ if ( !is_object($object) || $object->projectid != $project->projectid)
+ $object = new Object( $project->getRootObjectId() );
$object->objectLoadRaw();
Session::setObject( $object );
-
- $user = Session::getUser();
- $user->loadRights( $project->projectid,$language->languageid );
- Session::setUser( $user );
-
}
- elseif ( isset($vars['modelid']) )
+ elseif ( isset($vars[REQ_PARAM_MODEL_ID]) && Model::available($vars[REQ_PARAM_MODEL_ID]) )
{
- $model = new Model( $vars['modelid'] );
+ $model = new Model( $vars[REQ_PARAM_MODEL_ID] );
$model->load();
Session::setProjectModel( $model );
@@ -874,30 +900,30 @@ class IndexAction extends Action
Session::setProjectLanguage( $language );
}
- $object = new Object( $project->getRootObjectId() );
+ $object = Session::getObject();
+ if ( !is_object($object) || $object->projectid != $project->projectid)
+ $object = new Object( $project->getRootObjectId() );
$object->objectLoadRaw();
Session::setObject( $object );
-
- $user = Session::getUser();
- $user->loadRights( $project->projectid,$language->languageid );
- Session::setUser( $user );
}
- elseif ( isset($vars['projectid']) )
+ elseif ( isset($vars[REQ_PARAM_PROJECT_ID])&&Project::available($vars[REQ_PARAM_PROJECT_ID]) )
{
- $project = new Project( $vars['projectid'] );
+ $project = new Project( $vars[REQ_PARAM_PROJECT_ID] );
$project->load();
Session::setProject( $project );
- $language = new Language( isset($vars[REQ_PARAM_LANGUAGE_ID])?$vars[REQ_PARAM_LANGUAGE_ID]:$project->getDefaultLanguageId() );
+ $language = new Language( isset($vars[REQ_PARAM_LANGUAGE_ID])&& Language::available($vars[REQ_PARAM_LANGUAGE_ID])?$vars[REQ_PARAM_LANGUAGE_ID]:$project->getDefaultLanguageId() );
$language->load();
Session::setProjectLanguage( $language );
- $model = new Model( isset($vars['modelid'])?$vars['modelid']:$project->getDefaultModelId() );
+ $model = new Model( isset($vars[REQ_PARAM_MODEL_ID])&& Model::available($vars[REQ_PARAM_MODEL_ID])?$vars[REQ_PARAM_MODEL_ID]:$project->getDefaultModelId() );
$model->load();
Session::setProjectModel( $model );
- $object = new Object( $project->getRootObjectId() );
+ $object = Session::getObject();
+ if ( !is_object($object) || $object->projectid != $project->projectid)
+ $object = new Object( $project->getRootObjectId() );
$object->objectLoadRaw();
Session::setObject( $object );
}