diff options
Diffstat (limited to 'app/model/auth.mod.php')
| -rw-r--r-- | app/model/auth.mod.php | 101 | 
1 files changed, 101 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() . "/"); +    } +} + +?> | 
