mirror of
https://github.com/danielbrendel/hortusfox-web.git
synced 2026-01-07 21:30:18 -06:00
174 lines
3.8 KiB
PHP
174 lines
3.8 KiB
PHP
<?php
|
|
|
|
/*
|
|
Asatru PHP - Example controller
|
|
|
|
Add here all your needed routes implementations related to 'index'.
|
|
*/
|
|
|
|
/**
|
|
* Index controller
|
|
*/
|
|
class IndexController extends BaseController {
|
|
const INDEX_LAYOUT = 'layout';
|
|
|
|
/**
|
|
* Perform base initialization
|
|
*
|
|
* @return void
|
|
*/
|
|
public function __construct()
|
|
{
|
|
parent::__construct(self::INDEX_LAYOUT);
|
|
}
|
|
|
|
/**
|
|
* Handles URL: /
|
|
*
|
|
* @param Asatru\Controller\ControllerArg $request
|
|
* @return Asatru\View\ViewHandler
|
|
*/
|
|
public function index($request)
|
|
{
|
|
$user = UserModel::getAuthUser();
|
|
$locs = LocationsModel::getAll();
|
|
$warning_plants = PlantsModel::getWarningPlants();
|
|
$overdue_tasks = TasksModel::getOverdueTasks();
|
|
$log = LogModel::getHistory();
|
|
$stats = UtilsModule::getStats();
|
|
|
|
$upcoming_tasks_overview = TasksModel::getTasks(false, 4);
|
|
|
|
if ($user->get('show_plants_aoru')) {
|
|
$last_plants_list = PlantsModel::getLastAddedPlants();
|
|
} else {
|
|
$last_plants_list = PlantsModel::getLastAuthoredPlants();
|
|
}
|
|
|
|
return parent::view(['content', 'index'], [
|
|
'user' => $user,
|
|
'warning_plants' => $warning_plants,
|
|
'overdue_tasks' => $overdue_tasks,
|
|
'locations' => $locs,
|
|
'log' => $log,
|
|
'stats' => $stats,
|
|
'upcoming_tasks_overview' => $upcoming_tasks_overview,
|
|
'last_plants_list' => $last_plants_list
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* Handles URL: /auth
|
|
*
|
|
* @param Asatru\Controller\ControllerArg $request
|
|
* @return Asatru\View\ViewHandler
|
|
*/
|
|
public function auth($request)
|
|
{
|
|
$view = new Asatru\View\ViewHandler();
|
|
$view->setLayout('auth');
|
|
|
|
return $view;
|
|
}
|
|
|
|
/**
|
|
* Handles URL: /login
|
|
*
|
|
* @param Asatru\Controller\ControllerArg $request
|
|
* @return Asatru\View\RedirectHandler
|
|
*/
|
|
public function login($request)
|
|
{
|
|
try {
|
|
$email = $request->params()->query('email', null);
|
|
$password = $request->params()->query('password', null);
|
|
|
|
UserModel::login($email, $password);
|
|
|
|
return redirect('/');
|
|
} catch (\Exception $e) {
|
|
FlashMessage::setMsg('error', $e->getMessage());
|
|
return back();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Handles URL: /logout
|
|
*
|
|
* @param Asatru\Controller\ControllerArg $request
|
|
* @return Asatru\View\RedirectHandler
|
|
*/
|
|
public function logout($request)
|
|
{
|
|
try {
|
|
UserModel::logout();
|
|
|
|
return redirect('/');
|
|
} catch (\Exception $e) {
|
|
FlashMessage::setMsg('error', $e->getMessage());
|
|
return back();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Handles URL: /password/restore
|
|
*
|
|
* @param Asatru\Controller\ControllerArg $request
|
|
* @return Asatru\View\RedirectHandler
|
|
*/
|
|
public function restore_password($request)
|
|
{
|
|
try {
|
|
$email = $request->params()->query('email', null);
|
|
|
|
UserModel::restorePassword($email);
|
|
|
|
FlashMessage::setMsg('success', __('app.restore_password_info'));
|
|
|
|
return redirect('/');
|
|
} catch (\Exception $e) {
|
|
FlashMessage::setMsg('error', $e->getMessage());
|
|
return back();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Handles URL: /password/reset
|
|
*
|
|
* @param Asatru\Controller\ControllerArg $request
|
|
* @return Asatru\View\ViewHandler
|
|
*/
|
|
public function view_reset_password($request)
|
|
{
|
|
$token = $request->params()->query('token');
|
|
|
|
return view('pwreset', [], ['token' => $token]);
|
|
}
|
|
|
|
/**
|
|
* Handles URL: /password/reset
|
|
*
|
|
* @param Asatru\Controller\ControllerArg $request
|
|
* @return Asatru\View\RedirectHandler
|
|
*/
|
|
public function reset_password($request)
|
|
{
|
|
try {
|
|
$token = $request->params()->query('token', null);
|
|
$password = $request->params()->query('password', null);
|
|
$password_confirmation = $request->params()->query('password_confirmation', null);
|
|
|
|
if ($password !== $password_confirmation) {
|
|
throw new \Exception(__('app.password_mismatch'));
|
|
}
|
|
|
|
UserModel::resetPassword($token, $password);
|
|
|
|
return redirect('/');
|
|
} catch (\Exception $e) {
|
|
FlashMessage::setMsg('error', $e->getMessage());
|
|
return back();
|
|
}
|
|
}
|
|
}
|