Esempio n. 1
0
 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);
 }
Esempio n. 2
0
 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);
     }
 }
Esempio n. 3
0
 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());
 }
Esempio n. 4
0
 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']);
 }
Esempio n. 5
0
 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();
 }
Esempio n. 6
0
 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();
 }
Esempio n. 7
0
 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();
     }
 }
Esempio n. 8
0
 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']);
 }