public static function updateLease($id, $leaseId)
 {
     $params = $_POST;
     if (parent::logged_in_user_is_landlord_of($id)) {
         $lease = new Lease(array('id' => $leaseId, 'tenant' => $params['tenant'], 'tenant_email' => $params['tenant_email'], 'rent' => $params['rent'], 'start_date' => $params['start_date'], 'end_date' => $params['end_date'], 'rental_unit' => $params['rental_unit']));
         if ($lease->validate()) {
             $lease->update();
             Amenity::update_amenities_of(Amenity::LEASE, $leaseId, $params);
             Redirect::to('/units/' . $params['rental_unit'], array('message' => 'lease updated'));
         } else {
             $errors = array_values($lease->errors());
             Redirect::to('/units/' . $params['rental_unit'] . '/leases/' . $leaseId . '/edit', array('errors' => $errors, 'input' => $params, 'unit' => RentalUnit::find($params['rental_unit'])));
         }
     }
     Redirect::to('/units/' . $params['rental_unit'], array('message' => 'insufficient rights'));
 }
 public static function viewUnit($id)
 {
     $unit = RentalUnit::find($id);
     $amenities = Amenity::all_and_check(Amenity::RENTAL_UNIT, $id);
     $landlord = User::find($unit->landlord);
     $user = parent::get_user_logged_in();
     $leases = Lease::find_leases_for($id);
     $disabled = null;
     if ($user->id != $landlord->id) {
         $disabled = 'disabled';
     }
     View::make('rental_unit/unit.html', array('unit' => $unit, 'amenities' => $amenities, 'landlord' => $landlord, 'leases' => $leases, 'disabled' => $disabled));
 }
 public function getInvite($token)
 {
     $invite = Invite::getByToken($token);
     if (!$invite) {
         return View::make('pages.guest')->with('failure', "Invalid Token. It was already used or has been terminated by the admins");
     }
     $email = $invite->email;
     if (!$invite->email) {
         $email = "URL";
     }
     //Creating the lease
     $lease = array('user_id' => $invite->user_id, 'group_id' => $invite->group_id, 'lease_ip' => $this->getClientIp() . "/32", 'protocol' => $invite->protocol, 'port_from' => $invite->port_from, 'port_to' => $invite->port_to, 'expiry' => $invite->expiry, 'invite_email' => $email);
     $result = $this->createLease($lease);
     if (!$result) {
         //Lease Creation Failed. AWS Reported an error. Generally in case if a lease with same ip, protocl, port already exists on AWS.
         return View::make('pages.guest')->with('failure', "Error encountered while creating lease. Please try again. If doesn't help contact the admin.");
     }
     $lease = Lease::create($lease);
     if ($invite->email != 'DEPLOY') {
         $invite = $invite->delete();
     }
     $this->NotificationMail($lease, TRUE);
     return View::make('pages.guest')->with('lease', $lease);
 }