summaryrefslogtreecommitdiffstats
path: root/app/model
diff options
context:
space:
mode:
Diffstat (limited to 'app/model')
-rw-r--r--app/model/auth.mod.php101
-rw-r--r--app/model/common.mod.php9
2 files changed, 110 insertions, 0 deletions
diff --git a/app/model/auth.mod.php b/app/model/auth.mod.php
new file mode 100644
index 0000000..23b8288
--- /dev/null
+++ b/app/model/auth.mod.php
@@ -0,0 +1,101 @@
+<?php
+
+require_once "model/common.mod.php";
+require_once "class/user.class.php";
+require_once "class/form.class.php";
+require_once "class/setting.class.php";
+
+class AuthModel extends CommonModel
+{
+ /*
+ * Default action
+ */
+ function deflt()
+ {
+ $userTbl = new User();
+
+ if (count($userTbl->getAllUsers_orderByName()) == 0)
+ {
+ $this->noaccounts = true;
+ $this->activeTab['signup'] = "in active";
+ $this->tabSwap = false;
+ }
+
+ else
+ {
+ $this->activeTab['login'] = "in active";
+ $this->tabSwap = Setting::allowPublicSignup();
+ }
+ }
+
+ /*
+ * Attempt to register a new account
+ */
+ function signup($input)
+ {
+ $userTbl = new User();
+
+ if (!Setting::allowPublicSignup() && count($userTbl->getAllUsers_orderByName()) > 0)
+ {
+ $this->logError("You may not signup at this time");
+ return;
+ }
+
+ $form = new Form();
+ $form->field_text("username");
+ $form->field_text("password", null, false);
+ $form->field_text("cPassword", null, false);
+
+ if (!$form->populate($input))
+ {
+ $this->logFormErrors($form);
+ return;
+ }
+
+ if ($form->password != $form->cPassword)
+ {
+ $this->logError("Passwords do not match");
+ return;
+ }
+
+ $user = new User();
+
+ if (!$user->createNewUser($form->username, $form->password))
+ {
+ $this->logError("Your requested username is already in use");
+ return;
+ }
+
+ $this->setCurrentUser($user);
+ $this->redirectTo($this->ap() . "/");
+ }
+
+ /*
+ * Attempt to login
+ */
+ function login($input)
+ {
+ $form = new Form();
+ $form->field_text("username");
+ $form->field_text("password", null, false);
+
+ if (!$form->populate($input))
+ {
+ $this->logFormErrors($form);
+ return;
+ }
+
+ $user = new User();
+
+ if (!($user->initByUsername($form->username) && $user->validatePassword($form->password)))
+ {
+ $this->logError("Username or password is incorrect");
+ return;
+ }
+
+ $this->setCurrentUser($user);
+ $this->redirectTo($this->ap() . "/");
+ }
+}
+
+?>
diff --git a/app/model/common.mod.php b/app/model/common.mod.php
new file mode 100644
index 0000000..d4270d8
--- /dev/null
+++ b/app/model/common.mod.php
@@ -0,0 +1,9 @@
+<?php
+
+require_once "model/master.mod.php";
+
+class CommonModel extends MasterModel
+{
+}
+
+?>