function edit()
 {
     if (!isset($_SESSION['User'])) {
         $this->redirect('/users/login');
     }
     $this->set('error', false);
     $this->pageTitle = 'Edit My Account';
     if (empty($this->data)) {
         $this->User->id = $_SESSION['User']['id'];
         $this->data = $this->User->read();
         $this->data['User']['password'] = "";
         $this->set('utz', $this->data['User']['tz']);
         $this->data['User']['name'] = preg_replace("/&#(\\d{2,5});/e", '$this->Unicode->unicode2utf(${1})', html_entity_decode($this->data['User']['name']));
         $this->data['User']['website'] = preg_replace("/&#(\\d{2,5});/e", '$this->Unicode->unicode2utf(${1})', html_entity_decode($this->data['User']['website']));
         $this->data['User']['location'] = preg_replace("/&#(\\d{2,5});/e", '$this->Unicode->unicode2utf(${1})', html_entity_decode($this->data['User']['location']));
         if (GMAP_API_KEY != null) {
             if ($this->data['User']['lat']) {
                 $this->set('map', 'mapInit(' . $this->data['User']['lat'] . ',' . $this->data['User']['long'] . ',' . $this->data['User']['zoom'] . ')');
             } else {
                 $this->set('map', 'mapInit()');
             }
         }
     } else {
         $user = $this->User->findById($_SESSION['User']['id']);
         $this->User->id = $user['User']['id'];
         $this->set('utz', $user['User']['tz']);
         $clean = new Sanitize();
         $temp = array('password' => $this->data['User']['password'], 'confpassword' => $this->data['User']['confpassword'], 'lat' => $clean->sql($this->data['User']['lat']), 'long' => $clean->sql($this->data['User']['long']), 'tz' => $clean->sql($this->data['User']['tz']));
         //Nuke everything else
         $clean->cleanArray($this->data);
         $this->data['User']['email'] = $user['User']['email'];
         $this->data['User']['password'] = $temp['password'];
         $this->data['User']['confpassword'] = $temp['confpassword'];
         $this->data['User']['lat'] = floatval($temp['lat']);
         $this->data['User']['long'] = floatval($temp['long']);
         $this->data['User']['tz'] = intval($temp['tz']);
         $this->data['User']['role'] = $user['User']['role'];
         if (!preg_match("/^(http|https)\\:\\/\\//i", $this->data['User']['website']) && !empty($this->data['User']['website'])) {
             $this->User->invalidate('website');
         }
         if ($this->data['User']['password'] === $this->data['User']['confpassword'] && !empty($this->data['User']['password'])) {
             $pass = $this->Hash->password($this->data['User']['password'], $user['User']['email']);
             $this->data['User']['password'] = $pass['pass'];
             $this->data['User']['salt'] = $pass['salt'];
         } else {
             if (empty($this->data['User']['password']) && empty($this->data['User']['confpassword'])) {
                 $this->data['User']['password'] = $user['User']['password'];
                 $this->data['User']['salt'] = $user['User']['salt'];
             } else {
                 $this->set('error', true);
                 $this->User->invalidate('password');
                 $this->User->invalidate('confpassword');
             }
         }
         if ($this->User->validates($this->data)) {
             if ($this->User->save($this->data)) {
                 $sess = $this->User->findById($user['User']['id']);
                 $this->redirect('/users/');
             }
         } else {
             $this->validateErrors($this->User);
             $this->data['User']['password'] = null;
             $this->data['User']['confpassword'] = null;
             $this->render();
         }
     }
 }
 function invited($icode = null, $conf = null)
 {
     $this->pageTitle = "Confirm Invite";
     if ($icode == 'cancel') {
         $this->Session->delete('invite');
         $this->Session->delete('invitestep');
         $this->redirect('/');
     } else {
         $clean = new Sanitize();
         $icode = $clean->sql($icode);
         $party = $this->Party->findByInvitecode($icode);
         if (empty($party['Party']['id'])) {
             $this->Session->setFlash('Could not find a party matching that invite code, please check it and try again.', 'errorFlash');
         } else {
             if (!empty($_SESSION['User']['id']) && !empty($_SESSION['invitestep']) && $conf == 'confirm') {
                 $this->Party->addGuest($_SESSION['User']['id'], $_SESSION['invite']);
                 $this->Session->setFlash('You have been successfully added to this party.', 'infoFlash');
                 $this->redirect('/parties/view/' . $party['Party']['id']);
             } else {
                 if (!empty($_SESSION['User']['id'])) {
                     $this->set('confirm_only', true);
                     $this->set('party', $party);
                     $this->set('icode', $icode);
                     $this->Session->write('invitestep', 'true');
                     $this->Session->write('invite', $icode);
                 } else {
                     $this->Session->write('invite', $icode);
                     $this->set('party', $party);
                     $this->set('icode', $icode);
                 }
             }
         }
     }
 }