From 29987e86404b3e0e446dfe354800431f06d740fd Mon Sep 17 00:00:00 2001 From: Josh Sherman Date: Mon, 16 Dec 2013 17:19:44 -0500 Subject: [PATCH] Finished user creation step Added new modules to handle routing if the user is logged in or not. Closes #2 --- .gitignore | 4 ++++ classes/AnonymousModule.php | 16 ++++++++++++++++ classes/UserModule.php | 16 ++++++++++++++++ models/User.php | 13 +++++++++++++ modules/join.php | 8 ++++++++ modules/login.php | 8 ++++++++ modules/user/create.php | 36 ++++++++++++++++++------------------ private/logs/.gitignore | 4 ++++ 8 files changed, 87 insertions(+), 18 deletions(-) create mode 100644 .gitignore create mode 100644 classes/AnonymousModule.php create mode 100644 classes/UserModule.php create mode 100644 modules/join.php create mode 100644 modules/login.php create mode 100644 private/logs/.gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..45b9c27 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +# OS generated files # +###################### +.DS_Store +.DS_Store? diff --git a/classes/AnonymousModule.php b/classes/AnonymousModule.php new file mode 100644 index 0000000..4a5a439 --- /dev/null +++ b/classes/AnonymousModule.php @@ -0,0 +1,16 @@ + diff --git a/classes/UserModule.php b/classes/UserModule.php new file mode 100644 index 0000000..9b6ad98 --- /dev/null +++ b/classes/UserModule.php @@ -0,0 +1,16 @@ + diff --git a/models/User.php b/models/User.php index a4b4831..7b572d9 100644 --- a/models/User.php +++ b/models/User.php @@ -3,6 +3,19 @@ class User extends RedisModel { protected $prefix = 'user'; + + public static function isAuthenticated() + { + if (isset($_COOKIE['__auth'])) + { + list($uid, $auth_token) = explode('|', base64_decode($_COOKIE['__auth'])); + + $user = new self(); + $user_token = $user->getAuth($uid); + + return $user_token === $auth_token; + } + } } ?> diff --git a/modules/join.php b/modules/join.php new file mode 100644 index 0000000..b13949f --- /dev/null +++ b/modules/join.php @@ -0,0 +1,8 @@ + diff --git a/modules/login.php b/modules/login.php new file mode 100644 index 0000000..1578df8 --- /dev/null +++ b/modules/login.php @@ -0,0 +1,8 @@ + diff --git a/modules/user/create.php b/modules/user/create.php index e308797..f9d89a8 100644 --- a/modules/user/create.php +++ b/modules/user/create.php @@ -1,23 +1,23 @@ array( -// 'length:>:100' => 'Email addresses may not be more than 100 characters.', -// 'filter:email' => 'Your email address is invalid.', -// ), -// 'username' => array( -// 'length:<:4' => 'Usernames may not be less than 4 characters.', -// 'length:>:30' => 'Usernames may not be more than 50 characters.', -// 'regex:is:/[^a-z0-9]+/i' => 'Usernames may only contain letters and numbers.', -// ), -// 'password' => array( -// 'length:<:8' => 'Passwords may not be less than 8 characters.', -// ), -// ); + protected $ajax = true; + protected $method = 'POST'; + protected $validate = array( + 'email' => array( + 'length:>:100' => 'Email addresses may not be more than 100 characters.', + 'filter:email' => 'Your email address is invalid.', + ), + 'username' => array( + 'length:<:4' => 'Usernames may not be less than 4 characters.', + 'length:>:30' => 'Usernames may not be more than 50 characters.', + 'regex:is:/[^a-z0-9]+/i' => 'Usernames may only contain letters and numbers.', + ), + 'password' => array( + 'length:<:8' => 'Passwords may not be less than 8 characters.', + ), + ); public function __default() { @@ -53,7 +53,7 @@ class user_create extends CustomModule $user->setMapping('email', $_POST['email'], $uid); // Sets a cookie with the UID and auth token - setcookie('auth', $uid . '|' . $auth_token, Time::YEAR); + setcookie('__auth', base64_encode($uid . '|' . $auth_token), time() + Time::YEAR, '/'); return array('status' => 'success', 'url' => '/'); } diff --git a/private/logs/.gitignore b/private/logs/.gitignore new file mode 100644 index 0000000..5e7d273 --- /dev/null +++ b/private/logs/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore