Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Removed firstname/lastname fields (issue [544067e8c0]) |
---|---|
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
5d7dae3b56942eb3be2eb6276e016b88 |
User & Date: | rkeene 2016-09-13 18:48:51.390 |
Context
2016-09-13
| ||
19:05 | Made nano Fossil more unified in setting HOME and USER to something random check-in: 38be9473fe user: rkeene tags: trunk | |
18:48 | Removed firstname/lastname fields (issue [544067e8c0]) check-in: 5d7dae3b56 user: rkeene tags: trunk | |
18:37 | Added support for LetsEncrypt/ACME URLs with flint check-in: 80ce2cfb47 user: rkeene tags: trunk | |
Changes
Changes to nano/session.php.
︙ | ︙ | |||
10 11 12 13 14 15 16 | } public static function create($user) { $user['hash'] = crypt($user['password'], self::generateSalt()); $sql = "INSERT INTO users | | | < < | 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | } public static function create($user) { $user['hash'] = crypt($user['password'], self::generateSalt()); $sql = "INSERT INTO users (email, username, hash) VALUES (:email, :username, :hash)"; $bind = array(); $bind['email'] = $user['email']; $bind['username'] = $user['username']; $bind['hash'] = $user['hash']; if (Nano_Db::execute($sql, $bind)) { return true; } |
︙ | ︙ | |||
52 53 54 55 56 57 58 | } public static function update($user, $info) { $bind = array(); $sql = "UPDATE users | < < | < < | 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | } public static function update($user, $info) { $bind = array(); $sql = "UPDATE users SET email = :email"; if (isset($info['password'])) { $info['hash'] = crypt($info['password'], self::generateSalt()); $bind['hash'] = $info['hash']; $sql .= ", password = '', salt = '', hash = :hash"; } $sql .= " WHERE id = :id"; $bind['email'] = $info['email']; $bind['id'] = $user['id']; if (Nano_Db::execute($sql, $bind)) { return true; } |
︙ | ︙ | |||
197 198 199 200 201 202 203 | $bind['token'] = sha1("{$result['id']}{$result['username']}{$result['email']}" . mt_rand()); Nano_Db::execute($sql, $bind); $headers = "From: Flint <no-reply@{$_SERVER['SERVER_NAME']}>\r\n" . "Reply-To: Flint <no-reply@{$_SERVER['SERVER_NAME']}>"; | | | 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 | $bind['token'] = sha1("{$result['id']}{$result['username']}{$result['email']}" . mt_rand()); Nano_Db::execute($sql, $bind); $headers = "From: Flint <no-reply@{$_SERVER['SERVER_NAME']}>\r\n" . "Reply-To: Flint <no-reply@{$_SERVER['SERVER_NAME']}>"; $message = "{$result['email']},\n\nUse the link below to reset your {$_SERVER['SERVER_NAME']} password. " . "Your one time token expires in 24 hours.\n\n" . "https://{$_SERVER['SERVER_NAME']}/secure/log-in/token/{$bind['token']}\n\n" . "The Flint Team"; mail($result['email'], 'Flint.tld Forgot Password', $message, $headers, '-fno-reply@' . $_SERVER['SERVER_NAME']); |
︙ | ︙ |
Changes to public/presentation/index.tpl.
︙ | ︙ | |||
29 30 31 32 33 34 35 | </li> </ul> </div> <div id="side"> <h2>Create an account <strong>now</strong>!</h2> <form action="https://<?= $_SERVER['SERVER_NAME'] ?>/secure/create-account/" method="post"> <ol> | < < | 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | </li> </ul> </div> <div id="side"> <h2>Create an account <strong>now</strong>!</h2> <form action="https://<?= $_SERVER['SERVER_NAME'] ?>/secure/create-account/" method="post"> <ol> <li><? $this->form_text('email') ?></li> <li><? $this->form_text('username') ?></li> <li><? $this->form_password('password') ?></li> <li><? $this->form_password('password-again') ?></li> </ol> <p><? $this->form_button('Create Account') ?></p> </form> |
︙ | ︙ |
Changes to public/secure/account/index.php.
︙ | ︙ | |||
12 13 14 15 16 17 18 | unset($_SESSION['token-login']); } if ($_POST) { $validation = new Nano_Validation(); $rules = array(); | < < < < | 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | unset($_SESSION['token-login']); } if ($_POST) { $validation = new Nano_Validation(); $rules = array(); $rules['email'] = 'required,email'; $rules['password-again'] = 'match[password]'; if (isset($_POST['email']) && $_POST['email'] != $user['email']) { $rules['email'] = 'required,email,uniqueEmail'; } if ($validation->validate($_POST, $rules)) { $info = array(); $info['email'] = $_POST['email']; if (isset($_POST['password']) && !empty($_POST['password'])) { $info['password'] = $_POST['password']; } if (Nano_Session::update($user, $info)) { |
︙ | ︙ |
Changes to public/secure/account/presentation/index.tpl.
1 2 3 4 5 6 7 8 9 10 11 | <p>Update account information below.</p> <? if (isset($this->error)): ?> <p class="error">Something failed during the update process please try again.</p> <? elseif (isset($this->success)): ?> <p class="success">Account succesfully updated.</p> <? elseif (isset($this->token)): ?> <p class="success">Successfully logged in via token. Please reset your password.</p> <? endif ?> <form action="/secure/account/" method="post"> <ol> | < < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <p>Update account information below.</p> <? if (isset($this->error)): ?> <p class="error">Something failed during the update process please try again.</p> <? elseif (isset($this->success)): ?> <p class="success">Account succesfully updated.</p> <? elseif (isset($this->token)): ?> <p class="success">Successfully logged in via token. Please reset your password.</p> <? endif ?> <form action="/secure/account/" method="post"> <ol> <li><? $this->form_text('email', $this->user['email']) ?></li> <li><? $this->form_password('password') ?></li> <li><? $this->form_password('password-again') ?></li> </ol> <p><? $this->form_button('Update') ?></p> </form> |
︙ | ︙ |
Changes to public/secure/create-account.php.
1 2 3 4 5 6 7 8 9 | <?php $view = new Nano_View(); $view->title(' - Create Account'); if ($_POST) { $validation = new Nano_Validation(); $rules = array(); | < < < < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <?php $view = new Nano_View(); $view->title(' - Create Account'); if ($_POST) { $validation = new Nano_Validation(); $rules = array(); $rules['email'] = 'required,email,uniqueEmail'; $rules['username'] = 'required,username,unique'; $rules['password'] = 'required'; $rules['password-again'] = 'required,match[password]'; if ($validation->validate($_POST, $rules)) { $user = array(); $user['email'] = $_POST['email']; $user['username'] = $_POST['username']; $user['password'] = $_POST['password']; if (Nano_Session::create($user)) { $_SESSION['new-account'] = true; Nano_Session::login($user['username'], $user['password']); |
︙ | ︙ |
Changes to public/secure/presentation/create-account.tpl.
1 2 3 4 5 6 7 8 | <p>Please fill out the form below to create a new account.</p> <? if (isset($this->error)): ?> <p class="error">Something failed during the creation process please try again.</p> <? endif ?> <form action="/secure/create-account/" method="post"> <ol> | < < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <p>Please fill out the form below to create a new account.</p> <? if (isset($this->error)): ?> <p class="error">Something failed during the creation process please try again.</p> <? endif ?> <form action="/secure/create-account/" method="post"> <ol> <li><? $this->form_text('email') ?></li> <li><? $this->form_text('username') ?></li> <li><? $this->form_password('password') ?></li> <li><? $this->form_password('password-again') ?></li> </ol> <p><? $this->form_button('Create Account') ?></p> </form> |