summaryrefslogtreecommitdiffstats
path: root/app/model/deleteacct.mod.php
diff options
context:
space:
mode:
authorMalf Furious <m@lfurio.us>2016-05-22 03:02:33 -0400
committerMalf Furious <m@lfurio.us>2016-05-22 03:02:33 -0400
commitc2137095e8b176affa3e97af579a70d394eeb7c1 (patch)
tree3028ab1e19adc1bd652445c79e1b45d0ab190683 /app/model/deleteacct.mod.php
parent5f99922eb6fbda82da55ccf728eda6add48cb4f1 (diff)
downloadscrott-c2137095e8b176affa3e97af579a70d394eeb7c1.tar.gz
scrott-c2137095e8b176affa3e97af579a70d394eeb7c1.zip
Add action 'delete' to Deleteacct MVC
This action will validate the user's password, and make sure you're not removing the last admin, then proceed to delete the current user's account from the database and log them out, for good.
Diffstat (limited to 'app/model/deleteacct.mod.php')
-rw-r--r--app/model/deleteacct.mod.php34
1 files changed, 34 insertions, 0 deletions
diff --git a/app/model/deleteacct.mod.php b/app/model/deleteacct.mod.php
index ca01a0d..89aca14 100644
--- a/app/model/deleteacct.mod.php
+++ b/app/model/deleteacct.mod.php
@@ -1,6 +1,8 @@
<?php
require_once "model/common.mod.php";
+require_once "class/form.class.php";
+require_once "class/user.class.php";
class DeleteacctModel extends CommonModel
{
@@ -10,6 +12,38 @@ class DeleteacctModel extends CommonModel
function deflt()
{
}
+
+ /*
+ * Delete current user's account
+ */
+ function del($input)
+ {
+ $form = new Form();
+ $form->field_text("password", null, false);
+
+ if (!$form->populate($input))
+ {
+ $this->logFormErrors($form);
+ return;
+ }
+
+ $user = $this->getCurrentUser();
+
+ if (!$user->validatePassword($form->password))
+ {
+ $this->logError("Account not deleted - Password was incorrect");
+ return;
+ }
+
+ if ($user->admin && $user->getNumAdmins() == 1)
+ {
+ $this->logError("Account not deleted - Cannot remove the last admin account");
+ return;
+ }
+
+ $user->delObj();
+ $this->redirectTo($this->ar() . "/");
+ }
}
?>