params()->query('cv', false); try { if ($check_version) { $new_version = VersionModule::getVersion(); $current_version = safe_config('version', '1'); } } catch (\Exception $e) { addLog(ASATRU_LOG_ERROR, $e->getMessage()); } return parent::view(['content', 'admin'], [ 'user' => $user, 'locations' => $locs, 'user_accounts' => $user_accounts, 'new_version' => $new_version, 'current_version' => $current_version ]); } /** * Handles URL: /admin/environment/save * * @param Asatru\Controller\ControllerArg $request * @return Asatru\View\RedirectHandler */ public function save_environment($request) { try { $workspace = $request->params()->query('workspace', env('APP_WORKSPACE')); $lang = $request->params()->query('lang', env('APP_LANG')); $scroller = (bool)$request->params()->query('scroller', 0); $enablechat = (bool)$request->params()->query('enablechat', 0); $onlinetimelimit = (int)$request->params()->query('onlinetimelimit', env('APP_ONLINEMINUTELIMIT')); $chatonlineusers = (bool)$request->params()->query('chatonlineusers', 0); $chattypingindicator = (bool)$request->params()->query('chattypingindicator', 0); $enablehistory = (bool)$request->params()->query('enablehistory', 0); $history_name = $request->params()->query('history_name', env('APP_HISTORY_NAME')); $cronpw = $request->params()->query('cronpw', env('APP_CRONPW')); UtilsModule::saveEnvironment($workspace, $lang, $scroller, $enablechat, $onlinetimelimit, $chatonlineusers, $chattypingindicator, $enablehistory, $history_name, $cronpw); FlashMessage::setMsg('success', __('app.environment_settings_saved')); return redirect('/admin'); } catch (\Exception $e) { FlashMessage::setMsg('error', $e->getMessage()); return back(); } } /** * Handles URL: /admin/user/create * * @param Asatru\Controller\ControllerArg $request * @return Asatru\View\RedirectHandler */ public function create_user($request) { try { $name = $request->params()->query('name', null); $email = $request->params()->query('email', null); UserModel::createUser($name, $email); FlashMessage::setMsg('success', __('app.user_created_successfully')); return redirect('/admin'); } catch (\Exception $e) { FlashMessage::setMsg('error', $e->getMessage()); return back(); } } /** * Handles URL: /admin/user/update * * @param Asatru\Controller\ControllerArg $request * @return Asatru\View\RedirectHandler */ public function update_user($request) { try { $id = $request->params()->query('id'); $name = $request->params()->query('name', null); $email = $request->params()->query('email', null); $admin = $request->params()->query('admin', 0); UserModel::updateUser($id, $name, $email, (int)$admin); FlashMessage::setMsg('success', __('app.user_updated_successfully')); return redirect('/admin'); } catch (\Exception $e) { FlashMessage::setMsg('error', $e->getMessage()); return back(); } } /** * Handles URL: /admin/user/remove * * @param Asatru\Controller\ControllerArg $request * @return Asatru\View\RedirectHandler */ public function remove_user($request) { try { $id = $request->params()->query('id'); UserModel::removeUser($id); FlashMessage::setMsg('success', __('app.user_removed_successfully')); return redirect('/admin'); } catch (\Exception $e) { FlashMessage::setMsg('error', $e->getMessage()); return back(); } } /** * Handles URL: /admin/location/add * * @param Asatru\Controller\ControllerArg $request * @return Asatru\View\RedirectHandler */ public function add_location($request) { try { $name = $request->params()->query('name', null); $icon = $request->params()->query('icon', null); LocationsModel::addLocation($name, $icon); FlashMessage::setMsg('success', __('app.location_added_successfully')); return redirect('/admin'); } catch (\Exception $e) { FlashMessage::setMsg('error', $e->getMessage()); return back(); } } /** * Handles URL: /admin/location/update * * @param Asatru\Controller\ControllerArg $request * @return Asatru\View\RedirectHandler */ public function update_location($request) { try { $id = $request->params()->query('id'); $name = $request->params()->query('name', null); $icon = $request->params()->query('icon', null); $active = $request->params()->query('active', 0); LocationsModel::editLocation($id, $name, $icon, (int)$active); FlashMessage::setMsg('success', __('app.location_updated_successfully')); return redirect('/admin'); } catch (\Exception $e) { FlashMessage::setMsg('error', $e->getMessage()); return back(); } } /** * Handles URL: /admin/location/remove * * @param Asatru\Controller\ControllerArg $request * @return Asatru\View\RedirectHandler */ public function remove_location($request) { try { $id = $request->params()->query('id'); $target = $request->params()->query('target'); LocationsModel::removeLocation($id, $target); FlashMessage::setMsg('success', __('app.location_removed_successfully')); return redirect('/admin'); } catch (\Exception $e) { FlashMessage::setMsg('error', $e->getMessage()); return back(); } } /** * Handles URL: /admin/media/logo * * @param Asatru\Controller\ControllerArg $request * @return Asatru\View\RedirectHandler */ public function upload_media_logo($request) { try { if ((!isset($_FILES['asset'])) || ($_FILES['asset']['error'] !== UPLOAD_ERR_OK) || ($_FILES['asset']['type'] !== 'image/png')) { throw new \Exception('Failed to upload file or invalid file uploaded'); } move_uploaded_file($_FILES['asset']['tmp_name'], public_path() . '/logo.png'); FlashMessage::setMsg('success', __('app.media_saved')); return redirect('/admin'); } catch (\Exception $e) { FlashMessage::setMsg('error', $e->getMessage()); return back(); } } /** * Handles URL: /admin/media/background * * @param Asatru\Controller\ControllerArg $request * @return Asatru\View\RedirectHandler */ public function upload_media_background($request) { try { if ((!isset($_FILES['asset'])) || ($_FILES['asset']['error'] !== UPLOAD_ERR_OK) || ($_FILES['asset']['type'] !== 'image/jpeg')) { throw new \Exception('Failed to upload file or invalid file uploaded'); } move_uploaded_file($_FILES['asset']['tmp_name'], public_path() . '/img/background.jpg'); FlashMessage::setMsg('success', __('app.media_saved')); return redirect('/admin'); } catch (\Exception $e) { FlashMessage::setMsg('error', $e->getMessage()); return back(); } } }