Smol optimisations and fixes a few things, mainly auth.php.
This commit is contained in:
parent
b6a427eaa4
commit
85ebfef072
8 changed files with 64 additions and 53 deletions
|
@ -8,6 +8,10 @@ use Misuzu\Users\LoginAttempt;
|
||||||
|
|
||||||
require_once __DIR__ . '/../misuzu.php';
|
require_once __DIR__ . '/../misuzu.php';
|
||||||
|
|
||||||
|
$config = $app->getConfig();
|
||||||
|
$templating = $app->getTemplating();
|
||||||
|
$session = $app->getSession();
|
||||||
|
|
||||||
$username_validation_errors = [
|
$username_validation_errors = [
|
||||||
'trim' => 'Your username may not start or end with spaces!',
|
'trim' => 'Your username may not start or end with spaces!',
|
||||||
'short' => "Your username is too short, it has to be at least " . User::USERNAME_MIN_LENGTH . " characters!",
|
'short' => "Your username is too short, it has to be at least " . User::USERNAME_MIN_LENGTH . " characters!",
|
||||||
|
@ -19,22 +23,22 @@ $username_validation_errors = [
|
||||||
];
|
];
|
||||||
|
|
||||||
$mode = $_GET['m'] ?? 'login';
|
$mode = $_GET['m'] ?? 'login';
|
||||||
$prevent_registration = $app->config->get('Auth', 'prevent_registration', 'bool', false);
|
$prevent_registration = $config->get('Auth', 'prevent_registration', 'bool', false);
|
||||||
$app->getTemplating()->var('auth_mode', $mode);
|
$templating->var('auth_mode', $mode);
|
||||||
$app->getTemplating()->addPath('auth', __DIR__ . '/../views/auth');
|
$templating->addPath('auth', __DIR__ . '/../views/auth');
|
||||||
$app->getTemplating()->var('prevent_registration', $prevent_registration);
|
$templating->var('prevent_registration', $prevent_registration);
|
||||||
|
|
||||||
if (!empty($_REQUEST['username'])) {
|
if (!empty($_REQUEST['username'])) {
|
||||||
$app->getTemplating()->var('auth_username', $_REQUEST['username']);
|
$templating->var('auth_username', $_REQUEST['username']);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($_REQUEST['email'])) {
|
if (!empty($_REQUEST['email'])) {
|
||||||
$app->getTemplating()->var('auth_email', $_REQUEST['email']);
|
$templating->var('auth_email', $_REQUEST['email']);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch ($mode) {
|
switch ($mode) {
|
||||||
case 'logout':
|
case 'logout':
|
||||||
if ($app->getSession() === null) {
|
if ($session === null) {
|
||||||
header('Location: /');
|
header('Location: /');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -43,17 +47,17 @@ switch ($mode) {
|
||||||
if (isset($_GET['s']) && tmp_csrf_verify($_GET['s'])) {
|
if (isset($_GET['s']) && tmp_csrf_verify($_GET['s'])) {
|
||||||
set_cookie_m('uid', '', -3600);
|
set_cookie_m('uid', '', -3600);
|
||||||
set_cookie_m('sid', '', -3600);
|
set_cookie_m('sid', '', -3600);
|
||||||
$app->getSession()->delete();
|
$session->delete();
|
||||||
$app->setSession(null);
|
$app->setSession(null);
|
||||||
header('Location: /');
|
header('Location: /');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
echo $app->getTemplating()->render('@auth.logout');
|
echo $templating->render('@auth.logout');
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'login':
|
case 'login':
|
||||||
if ($app->getSession() !== null) {
|
if ($session !== null) {
|
||||||
header('Location: /');
|
header('Location: /');
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -117,14 +121,14 @@ switch ($mode) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($auth_login_error)) {
|
if (!empty($auth_login_error)) {
|
||||||
$app->getTemplating()->var('auth_login_error', $auth_login_error);
|
$templating->var('auth_login_error', $auth_login_error);
|
||||||
}
|
}
|
||||||
|
|
||||||
echo $app->getTemplating()->render('auth');
|
echo $templating->render('auth');
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'register':
|
case 'register':
|
||||||
if ($app->getSession() !== null) {
|
if ($session !== null) {
|
||||||
header('Location: /');
|
header('Location: /');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -166,14 +170,14 @@ switch ($mode) {
|
||||||
|
|
||||||
$user = User::createUser($username, $password, $email);
|
$user = User::createUser($username, $password, $email);
|
||||||
$user->addRole(Role::find(1), true);
|
$user->addRole(Role::find(1), true);
|
||||||
$app->getTemplating()->var('auth_register_message', 'Welcome to Flashii! You may now log in.');
|
$templating->var('auth_register_message', 'Welcome to Flashii! You may now log in.');
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($auth_register_error)) {
|
if (!empty($auth_register_error)) {
|
||||||
$app->getTemplating()->var('auth_register_error', $auth_register_error);
|
$templating->var('auth_register_error', $auth_register_error);
|
||||||
}
|
}
|
||||||
|
|
||||||
echo $app->getTemplating()->render('@auth.auth');
|
echo $templating->render('@auth.auth');
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
<?php
|
<?php
|
||||||
require_once __DIR__ . '/../../misuzu.php';
|
require_once __DIR__ . '/../../misuzu.php';
|
||||||
|
|
||||||
|
$templating = $app->getTemplating();
|
||||||
|
|
||||||
switch ($_GET['v'] ?? null) {
|
switch ($_GET['v'] ?? null) {
|
||||||
case 'overview':
|
case 'overview':
|
||||||
echo $app->getTemplating()->render('@manage.general.overview');
|
echo $templating->render('@manage.general.overview');
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'logs':
|
case 'logs':
|
||||||
|
|
|
@ -5,14 +5,16 @@ use Misuzu\Users\User;
|
||||||
|
|
||||||
require_once __DIR__ . '/../../misuzu.php';
|
require_once __DIR__ . '/../../misuzu.php';
|
||||||
|
|
||||||
|
$templating = $app->getTemplating();
|
||||||
|
|
||||||
$is_post_request = $_SERVER['REQUEST_METHOD'] === 'POST';
|
$is_post_request = $_SERVER['REQUEST_METHOD'] === 'POST';
|
||||||
$page_id = (int)($_GET['p'] ?? 1);
|
$page_id = (int)($_GET['p'] ?? 1);
|
||||||
|
|
||||||
switch ($_GET['v'] ?? null) {
|
switch ($_GET['v'] ?? null) {
|
||||||
case 'listing':
|
case 'listing':
|
||||||
$manage_users = User::paginate(32, ['*'], 'p', $page_id);
|
$manage_users = User::paginate(32, ['*'], 'p', $page_id);
|
||||||
$app->getTemplating()->vars(compact('manage_users'));
|
$templating->vars(compact('manage_users'));
|
||||||
echo $app->getTemplating()->render('@manage.users.listing');
|
echo $templating->render('@manage.users.listing');
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'view':
|
case 'view':
|
||||||
|
@ -30,14 +32,14 @@ switch ($_GET['v'] ?? null) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
$app->getTemplating()->var('view_user', $view_user);
|
$templating->var('view_user', $view_user);
|
||||||
echo $app->getTemplating()->render('@manage.users.view');
|
echo $templating->render('@manage.users.view');
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'roles':
|
case 'roles':
|
||||||
$manage_roles = Role::paginate(32, ['*'], 'p', $page_id);
|
$manage_roles = Role::paginate(32, ['*'], 'p', $page_id);
|
||||||
$app->getTemplating()->vars(compact('manage_roles'));
|
$templating->vars(compact('manage_roles'));
|
||||||
echo $app->getTemplating()->render('@manage.users.roles');
|
echo $templating->render('@manage.users.roles');
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'role':
|
case 'role':
|
||||||
|
@ -120,9 +122,9 @@ switch ($_GET['v'] ?? null) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
$app->getTemplating()->vars(compact('edit_role'));
|
$templating->vars(compact('edit_role'));
|
||||||
}
|
}
|
||||||
|
|
||||||
echo $app->getTemplating()->render('@manage.users.roles_create');
|
echo $templating->render('@manage.users.roles_create');
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,8 @@ use Misuzu\News\NewsPost;
|
||||||
|
|
||||||
require_once __DIR__ . '/../misuzu.php';
|
require_once __DIR__ . '/../misuzu.php';
|
||||||
|
|
||||||
|
$templating = $app->getTemplating();
|
||||||
|
|
||||||
$category_id = isset($_GET['c']) ? (int)$_GET['c'] : null;
|
$category_id = isset($_GET['c']) ? (int)$_GET['c'] : null;
|
||||||
$post_id = isset($_GET['n']) ? (int)$_GET['n'] : null;
|
$post_id = isset($_GET['n']) ? (int)$_GET['n'] : null;
|
||||||
$page_id = (int)($_GET['p'] ?? 1);
|
$page_id = (int)($_GET['p'] ?? 1);
|
||||||
|
@ -13,11 +15,11 @@ if ($post_id !== null) {
|
||||||
|
|
||||||
if ($post === null) {
|
if ($post === null) {
|
||||||
http_response_code(404);
|
http_response_code(404);
|
||||||
echo $app->getTemplating()->render('errors.404');
|
echo $templating->render('errors.404');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
echo $app->getTemplating()->render('news.post', compact('post'));
|
echo $templating->render('news.post', compact('post'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,7 +28,7 @@ if ($category_id !== null) {
|
||||||
|
|
||||||
if ($category === null) {
|
if ($category === null) {
|
||||||
http_response_code(404);
|
http_response_code(404);
|
||||||
echo $app->getTemplating()->render('errors.404');
|
echo $templating->render('errors.404');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,12 +36,12 @@ if ($category_id !== null) {
|
||||||
|
|
||||||
if (!is_valid_page($posts, $page_id)) {
|
if (!is_valid_page($posts, $page_id)) {
|
||||||
http_response_code(404);
|
http_response_code(404);
|
||||||
echo $app->getTemplating()->render('errors.404');
|
echo $templating->render('errors.404');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$featured = $category->posts()->where('is_featured', 1)->orderBy('created_at', 'desc')->take(10)->get();
|
$featured = $category->posts()->where('is_featured', 1)->orderBy('created_at', 'desc')->take(10)->get();
|
||||||
echo $app->getTemplating()->render('news.category', compact('category', 'posts', 'featured', 'page_id'));
|
echo $templating->render('news.category', compact('category', 'posts', 'featured', 'page_id'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,8 +50,8 @@ $posts = NewsPost::where('is_featured', true)->orderBy('created_at', 'desc')->pa
|
||||||
|
|
||||||
if (!is_valid_page($posts, $page_id)) {
|
if (!is_valid_page($posts, $page_id)) {
|
||||||
http_response_code(404);
|
http_response_code(404);
|
||||||
echo $app->getTemplating()->render('errors.404');
|
echo $templating->render('errors.404');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
echo $app->getTemplating()->render('news.index', compact('categories', 'posts', 'page_id'));
|
echo $templating->render('news.index', compact('categories', 'posts', 'page_id'));
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
<?php
|
<?php
|
||||||
use Misuzu\IO\File;
|
use Misuzu\IO\File;
|
||||||
use Misuzu\IO\FileStream;
|
|
||||||
use Misuzu\Users\User;
|
use Misuzu\Users\User;
|
||||||
|
|
||||||
require_once __DIR__ . '/../misuzu.php';
|
require_once __DIR__ . '/../misuzu.php';
|
||||||
|
@ -44,13 +43,15 @@ switch ($mode) {
|
||||||
|
|
||||||
case 'view':
|
case 'view':
|
||||||
default:
|
default:
|
||||||
|
$templating = $app->getTemplating();
|
||||||
|
|
||||||
if ($profile_user === null) {
|
if ($profile_user === null) {
|
||||||
http_response_code(404);
|
http_response_code(404);
|
||||||
echo $app->getTemplating()->render('user.notfound');
|
echo $templating->render('user.notfound');
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
$app->getTemplating()->var('profile', $profile_user);
|
$templating->var('profile', $profile_user);
|
||||||
echo $app->getTemplating()->render('user.view');
|
echo $templating->render('user.view');
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,13 +6,14 @@ use Misuzu\Users\Session;
|
||||||
|
|
||||||
require_once __DIR__ . '/../misuzu.php';
|
require_once __DIR__ . '/../misuzu.php';
|
||||||
|
|
||||||
$settings_session = Application::getInstance()->getSession();
|
$settings_session = $app->getSession();
|
||||||
|
$templating = $app->getTemplating();
|
||||||
|
|
||||||
$page_id = (int)($_GET['p'] ?? 1);
|
$page_id = (int)($_GET['p'] ?? 1);
|
||||||
|
|
||||||
if (Application::getInstance()->getSession() === null) {
|
if (Application::getInstance()->getSession() === null) {
|
||||||
http_response_code(403);
|
http_response_code(403);
|
||||||
echo $app->getTemplating()->render('errors.403');
|
echo $templating->render('errors.403');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -82,12 +83,12 @@ $settings_modes = [
|
||||||
];
|
];
|
||||||
$settings_mode = $_GET['m'] ?? key($settings_modes);
|
$settings_mode = $_GET['m'] ?? key($settings_modes);
|
||||||
|
|
||||||
$app->getTemplating()->vars(compact('settings_mode', 'settings_modes', 'settings_user', 'settings_session'));
|
$templating->vars(compact('settings_mode', 'settings_modes', 'settings_user', 'settings_session'));
|
||||||
|
|
||||||
if (!array_key_exists($settings_mode, $settings_modes)) {
|
if (!array_key_exists($settings_mode, $settings_modes)) {
|
||||||
http_response_code(404);
|
http_response_code(404);
|
||||||
$app->getTemplating()->var('settings_title', 'Not Found');
|
$templating->var('settings_title', 'Not Found');
|
||||||
echo $app->getTemplating()->render('settings.notfound');
|
echo $templating->render('settings.notfound');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -188,7 +189,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
$password_validate = User::validatePassword($_POST['password']['new'], true);
|
$password_validate = User::validatePassword($_POST['password']['new']);
|
||||||
|
|
||||||
if ($password_validate !== '') {
|
if ($password_validate !== '') {
|
||||||
$settings_errors[] = "The given passwords was too weak.";
|
$settings_errors[] = "The given passwords was too weak.";
|
||||||
|
@ -328,17 +329,17 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$app->getTemplating()->vars(compact('settings_errors'));
|
$templating->vars(compact('settings_errors'));
|
||||||
$app->getTemplating()->var('settings_title', $settings_modes[$settings_mode]);
|
$templating->var('settings_title', $settings_modes[$settings_mode]);
|
||||||
|
|
||||||
switch ($settings_mode) {
|
switch ($settings_mode) {
|
||||||
case 'account':
|
case 'account':
|
||||||
$app->getTemplating()->vars(compact('settings_profile_fields', 'prevent_registration'));
|
$templating->vars(compact('settings_profile_fields', 'prevent_registration'));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'avatar':
|
case 'avatar':
|
||||||
$user_has_avatar = File::exists($app->getStore('avatars/original')->filename($avatar_filename));
|
$user_has_avatar = File::exists($app->getStore('avatars/original')->filename($avatar_filename));
|
||||||
$app->getTemplating()->vars(compact(
|
$templating->vars(compact(
|
||||||
'avatar_max_width',
|
'avatar_max_width',
|
||||||
'avatar_max_height',
|
'avatar_max_height',
|
||||||
'avatar_max_filesize',
|
'avatar_max_filesize',
|
||||||
|
@ -351,7 +352,7 @@ switch ($settings_mode) {
|
||||||
->orderBy('session_id', 'desc')
|
->orderBy('session_id', 'desc')
|
||||||
->paginate(15, ['*'], 'p', $page_id);
|
->paginate(15, ['*'], 'p', $page_id);
|
||||||
|
|
||||||
$app->getTemplating()->var('user_sessions', $sessions);
|
$templating->var('user_sessions', $sessions);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'login-history':
|
case 'login-history':
|
||||||
|
@ -359,8 +360,8 @@ switch ($settings_mode) {
|
||||||
->orderBy('attempt_id', 'desc')
|
->orderBy('attempt_id', 'desc')
|
||||||
->paginate(15, ['*'], 'p', $page_id);
|
->paginate(15, ['*'], 'p', $page_id);
|
||||||
|
|
||||||
$app->getTemplating()->var('user_login_attempts', $login_attempts);
|
$templating->var('user_login_attempts', $login_attempts);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
echo $app->getTemplating()->render("settings.{$settings_mode}");
|
echo $templating->render("settings.{$settings_mode}");
|
||||||
|
|
|
@ -1,9 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
namespace Misuzu;
|
namespace Misuzu;
|
||||||
|
|
||||||
use Closure;
|
|
||||||
use Illuminate\Database\Eloquent\Model as BaseModel;
|
use Illuminate\Database\Eloquent\Model as BaseModel;
|
||||||
use Illuminate\Support\Collection;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class Model
|
* Class Model
|
||||||
|
|
|
@ -91,12 +91,13 @@ function get_country_code(string $ipAddr, string $fallback = 'XX'): string
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$app = \Misuzu\Application::getInstance();
|
$app = \Misuzu\Application::getInstance();
|
||||||
|
$config = $app->getConfig();
|
||||||
|
|
||||||
if (!$app->hasModule('config')) {
|
if ($config === null) {
|
||||||
return $fallback;
|
return $fallback;
|
||||||
}
|
}
|
||||||
|
|
||||||
$database_path = $app->config->get('GeoIP', 'database_path');
|
$database_path = $config->get('GeoIP', 'database_path');
|
||||||
|
|
||||||
if ($database_path === null) {
|
if ($database_path === null) {
|
||||||
return $fallback;
|
return $fallback;
|
||||||
|
|
Loading…
Add table
Reference in a new issue