public function setUser(Model\User $user)
{
$this->user = $user;
\Zend_Registry::set("pimcore_admin_user", $this->user);
$this->setLanguage($this->user->getLanguage());
// update perspective settings
$requestedPerspective = $this->getParam("perspective");
if ($requestedPerspective) {
if ($requestedPerspective != $user->getActivePerspective()) {
$existingPerspectives = array_keys(Config::getPerspectivesConfig()->toArray());
if (!in_array($requestedPerspective, $existingPerspectives)) {
$requestedPerspective = null;
}
}
}
if (!$requestedPerspective || !$user->isAllowed($requestedPerspective, "perspective")) {
//choose active perspective or a first allowed
$requestedPerspective = $user->isAllowed($user->getActivePerspective(), "perspective") ? $user->getActivePerspective() : $user->getFirstAllowedPerspective();
}
if ($requestedPerspective != $user->getActivePerspective()) {
$user->setActivePerspective($requestedPerspective);
$user->save();
}
return $this;
}