Skip to content

Commit c25e6d0

Browse files
committed
Added 2FA to Delete:
- Storing item ID in $_SESSION until successful verification. - Checking for verify prompt on main app controller.
1 parent c99a06b commit c25e6d0

File tree

1 file changed

+22
-6
lines changed

1 file changed

+22
-6
lines changed

module/Todo/src/AppController.php

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111

1212
class AppController extends AbstractActionController
1313
{
14+
use VerifyTrait;
15+
1416
const PARSE_CLASS = 'ToDo';
1517

1618
/**
@@ -43,6 +45,10 @@ public function dispatch(Request $request, Response $response = null)
4345
*/
4446
public function indexAction()
4547
{
48+
if($view = $this->showVerifyIfNeeded()){
49+
return $view;
50+
}
51+
4652
$query = new ParseQuery(self::PARSE_CLASS);
4753
$query->equalTo('user', $this->user);
4854

@@ -86,12 +92,22 @@ public function deleteAction()
8692
return; //nothing to do
8793
}
8894

89-
$query = new ParseQuery(self::PARSE_CLASS);
90-
try {
91-
$item = $query->get($this->request->getPost('id'));
92-
$item->destroy();
93-
} catch (ParseException $e) {
94-
$this->flashMessenger()->addErrorMessage($e->getMessage());
95+
if(!$this->request->getPost('code')){
96+
$_SESSION['todo']['delete'] = $this->request->getPost('id');
97+
$this->startVerification($this->user->get('phoneNumber'), '/app/delete');
98+
$this->redirect()->toRoute('app');
99+
}
100+
101+
$code = $this->request->getPost('code');
102+
if($this->checkCode($code)){
103+
$query = new ParseQuery(self::PARSE_CLASS);
104+
try {
105+
$item = $query->get($_SESSION['todo']['delete']);
106+
$item->destroy();
107+
$_SESSION['todo']['delete'] = null;
108+
} catch (ParseException $e) {
109+
$this->flashMessenger()->addErrorMessage($e->getMessage());
110+
}
95111
}
96112

97113
$this->redirect()->toRoute('app');

0 commit comments

Comments
 (0)