Example #1
0
 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();
     }
 }