private function handlePost() { $request = Request::getInstance(); $view = ViewManager::getInstance(); try { $autentication = Authentication::getInstance(); $usermail = $request->getValue('email'); if (!$usermail) { throw new Exception("Email adres ontbreekt."); } if (!$request->exists('tag')) { throw new Exception('Tag ontbreekt.'); } $tree = $this->director->tree; $tag = $request->getValue('tag'); $tree_id = $tree->getCurrentId(); $key = array('tree_id' => $tree_id, 'tag' => $tag); $detail = $this->getDetail($key); if (!$detail) { $this->log->info("Request login information for unknown user at " . $request->getValue('REMOTE_ADDR', Request::SERVER)); throw new Exception("Error creating request"); } // get userinfo $systemUser = new SystemUser(); $users = $systemUser->getList(array('email' => $usermail)); foreach ($users['data'] as $user) { $detail = array_merge($detail, $user); $loginKey = md5(time() . $user['username']); $requestValues = array('request_key' => $loginKey, 'usr_id' => $user['id']); // register request $loginRequest = new LoginRequest(); $loginRequest->insert($requestValues); $url = new Url(true); $url->setParameter($view->getUrlId(), self::VIEW_ACTIVATE); $url->setParameter('key', $loginKey); // mail userinfo (only if user is present) if ($user) { $this->sendMail($user['email'], $this->director->getConfig()->email_address, $detail['subject'], $detail, $request->getProtocol() . $request->getDomain() . $url->getUrl()); } } $referer = $detail['ref_tree_id'] ? $tree->getPath($detail['ref_tree_id'], '/', Tree::TREE_ORIGINAL) : ($request->exists('referer') ? $request->getValue('referer') : '/'); header("Location: {$referer}"); exit; } catch (Exception $e) { $template = new TemplateEngine(); $template->setVariable('formError', $e->getMessage(), false); $this->handleHttpGetRequest(); } }