app/controllers/HomeController.php
<?php
/**
* Controller to handle requests to home
* Functions to create and delete users
*
* @package Controllers
*/
class HomeController extends BaseController {
/**
* Function to handle GET request for front page
*
* @return \Illuminate\Http\RedirectResponse|\Illuminate\View\View if user already uploaded files the function redirects to dashboard, if not the home view is returned
*
*/
public function getHome() {
if (Cookie::get('user_id')) {
$user = User::find(Cookie::get('user_id'));
if ($user) {
$name = 'user_id';
$value = $user->id;
$minutes = 60*24*7;
Cookie::queue($name, $value, $minutes);
$user->resetLastActivity();
$uploads = $user->uploads;
if (!$uploads->isEmpty()) {
return Redirect::route('dashboard');
} else {
return View::make('home');
}
}
}
$this->_createNewUser();
return View::make('home');
}
/**
* Function to handle GET request for resetting user data
*
* @return \Illuminate\Http\RedirectResponse Redirect to home view
*
*/
public function getDeleteMe()
{
$user = User::find(Cookie::get('user_id'));
$user->uploads->each(function($upload) {
if (count($upload->result)) {
$upload->result->delete();
}
$upload->delete();
});
$upload_directory = public_path() . '/uploads/' . $user->id;
$success = Upload::delTree($upload_directory);
$download_directory = public_path() . '/downloads/' . $user->id;
$success = Upload::delTree($download_directory);
$user->delete();
$this->_createNewUser();
return Redirect::route('home');
}
/**
* Function to create a new user in database
*/
private function _createNewUser() {
$user = new User;
$user->last_activity = date('Y-m-d H:m:s');
$user->save();
$name = 'user_id';
$value = $user->id;
$minutes = 60*24*7;
Cookie::queue($name, $value, $minutes);
Log::info("Created new user with id: " . $user->id);
}
}