public function render() { $page = 'home'; $app = Config::get('app'); $policy = new Policy_LoggedIn($this->app); $logged_in = $policy->check(); $app->menu_items = Helper_Menu::processMenuItems($app->menu_items, $page, $logged_in); $user = null; $formatted_weights = array(); $settingsVals = array(); $viewOptions = array(); if ($logged_in) { $userid = $policy->getData(); $user_mapper = new Mapper_User(); $user = $user_mapper->getUserById($userid); $settings_mapper = new Mapper_Settings(); $settingsVals = $settings_mapper->getFilteredSettingsByUserid($userid); $defaultView = 30.5; if (isset($settingsVals['default_view'])) { $defaultView = $settingsVals['default_view']; } $viewOptions = array(0 => array('value' => 7, 'name' => '1 week'), 1 => array('value' => 30.5, 'name' => '1 month'), 2 => array('value' => 61, 'name' => '2 months'), 3 => array('value' => 91.5, 'name' => '3 months'), 4 => array('value' => 182.5, 'name' => '6 months'), 5 => array('value' => 365, 'name' => '1 year'), 6 => array('value' => 'ytd', 'name' => 'Year to date'), 7 => array('value' => 'all', 'name' => 'All data')); foreach ($viewOptions as &$option) { if ($option['value'] == $defaultView) { $option['selected'] = true; } } } return array('app' => $app, 'breadcrumb' => 'Home', 'error' => Helper_Message::getError(), 'logged_in' => $logged_in, 'user' => $user, 'user_settings' => $settingsVals, 'view_options' => $viewOptions); }
public function GET() { $policy = new Policy_LoggedIn($this->app); $logged_in = $policy->check(); if ($logged_in) { $userid = $policy->getData(); $user_mapper = new Mapper_User(); $user_mapper->updateUpdateTimeForUser($userid); } }
public function render() { $page = 'settings'; $app = Config::get('app'); $policy = new Policy_LoggedIn($this->app); $userid = $policy->getData(); $app->menu_items = Helper_Menu::processMenuItems($app->menu_items, $page, $userid); $mapper = new Mapper_User(); $user = $mapper->getUserById($userid); return array('app' => $app, 'breadcrumb' => 'Account', 'user' => $user, 'error' => Helper_Message::getError(), 'success' => Helper_Message::getSuccess()); }
public function POST() { $policy = new Policy_LoggedOut($this->app); $policy->ensure(); $request = $this->app->request(); $username = trim($request->post('username')); $password = trim($request->post('password')); $email = trim($request->post('email')); if ($username == "" || $password == "" || $email == "") { $this->error("All fields are required."); } if (strlen($username) < 5 || strlen($username) > 15) { $this->error("User name must be between 5 and 15 characters."); } if (strlen($password) < 5 || strlen($password) > 15) { $this->error("Password must be between 5 and 15 characters."); } if (!ctype_alnum($username)) { $this->error("Invalid user name. Only letters and numbers are allowed."); } $firstChar = substr($username, 0, 1); if (!ctype_alpha($firstChar)) { $this->error("User name must start with a letter."); } if (!ctype_alnum($password)) { $this->error("Invalid password. Only letters and numbers are allowed."); } if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $this->error("Invalid email format."); } $user_mapper = new Mapper_User(); $possibleUser = $user_mapper->getUserByUsername($username); if ($possibleUser) { $this->error("That user name already exists."); } $possibleUser2 = $user_mapper->getUserByEmail($email); if ($possibleUser2) { $this->error("A user with that email address already exists."); } $user_mapper->createUser($username, $password, $email); $user = $user_mapper->getUserByUsername($username); $this->success($user['id']); }
public function POST() { $policy = new Policy_LoggedIn($this->app); $policy->ensure(); $userid = $policy->getData(); $mapper = new Mapper_User(); $user = $mapper->getUserById($userid); $app = Config::get('app'); $request = $this->app->request(); $email = trim($request->post('email')); if (!$email) { $this->error("Email is a required field."); } if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $this->error("Invalid email format."); } $possibleUser = $mapper->getUserByEmail($email); if ($possibleUser && $possibleUser['id'] != $userid) { $this->error("A user with that email address already exists."); } $oldPassword = trim($request->post('old_password')); $newPassword = trim($request->post('new_password')); if ($oldPassword && !$newPassword || !$oldPassword && $newPassword) { $this->error("You must enter both your old and your new passwords."); } else { if ($oldPassword && $newPassword) { if ($user['password_hash'] != Mapper_User::generateHash($oldPassword)) { $this->error("Old password is incorrect."); } if (strlen($newPassword) < 5 || strlen($newPassword) > 15) { $this->error("New password must be between 5 and 15 characters."); } if (!ctype_alnum($newPassword)) { $this->error("Invalid password. Only letters and numbers are allowed."); } $mapper->updatePasswordForUser($userid, $newPassword); } } $mapper->updateEmailForUser($userid, $email); $this->success(); }
public function POST() { $policy = new Policy_LoggedOut($this->app); $policy->ensure(); $app = Config::get('app'); $request = $this->app->request(); $email = trim($request->post('email')); if (!$email) { $this->error("Email address is a required field."); } $user_mapper = new Mapper_User(); $user = $user_mapper->getUserByEmail($email); if (!$user) { $this->error("No user with that email address exists."); } $newPass = substr(md5(mt_rand() . microtime(true)), 0, 10); $subject = "Your {$app->name} password has been reset"; $body = "Hey {$user['username']},<br /><br />" . "Your password has successfuly been reset.<br />" . 'It is now: "' . $newPass . '".' . "<br />" . 'You should <a href="http://www.trackly.me/account">log in</a>, and change it.' . "<br /><br />" . "Thanks,<br />" . "{$app->name}"; $this->email($email, $subject, $body); $user_mapper->updatePasswordForUser($user['id'], $newPass); $this->success(); }
public function POST() { $policy = new Policy_LoggedIn($this->app); $policy->ensure(); $userid = $policy->getData(); $request = $this->app->request(); $tempPassword = $request->post('password'); $user_mapper = new Mapper_User(); $user = $user_mapper->getUserById($userid); if ($user['password_hash'] != Mapper_User::generateHash($tempPassword)) { $this->error("The password you entered was invalid."); } else { // Delete settings $settings_mapper = new Mapper_Settings(); $settings_mapper->deleteAllSettingsForUser($userid); // Delete weights $weight_mapper = new Mapper_Weight(); $weight_mapper->deleteAllWeightsForUser($userid); // Delete user last $user_mapper->deleteUserById($userid); $this->success(); } }
public function POST() { $policy = new Policy_LoggedOut($this->app); $policy->ensure(); $request = $this->app->request(); $username = trim($request->post('username')); $password = trim($request->post('password')); if ($username == "" || $password == "") { $this->error("Both fields are required."); } $user_mapper = new Mapper_User(); $user = $user_mapper->getUserByUsername($username); if (!$user) { $user = $user_mapper->getUserByEmail($username); if (!$user) { $this->error("Invalid user name or password."); } } $hash = Mapper_User::generateHash($password); if ($user['password_hash'] !== $hash) { $this->error("Invalid user name or password."); } $this->success($user['id']); }