Compare commits
No commits in common. "2238fc39af564d03d677e6bbf68c7262d4a2705d" and "833ab2e029cf96324e8bc728786e71d784aa05c9" have entirely different histories.
2238fc39af
...
833ab2e029
|
@ -34,7 +34,6 @@ class Filters extends BaseFilters
|
||||||
'forcehttps' => ForceHTTPS::class,
|
'forcehttps' => ForceHTTPS::class,
|
||||||
'pagecache' => PageCache::class,
|
'pagecache' => PageCache::class,
|
||||||
'performance' => PerformanceMetrics::class,
|
'performance' => PerformanceMetrics::class,
|
||||||
'userSession' => \App\Filters\CheckUserSession::class,
|
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -11,16 +11,4 @@ $routes->get('user/(:any)', 'Users::user/$1');
|
||||||
$routes->get('car/(:any)', 'Cars::index/$1');
|
$routes->get('car/(:any)', 'Cars::index/$1');
|
||||||
$routes->get('track/(:any)', 'Tracks::index/$1');
|
$routes->get('track/(:any)', 'Tracks::index/$1');
|
||||||
$routes->get('race/(:num)', 'Races::index/$1');
|
$routes->get('race/(:num)', 'Races::index/$1');
|
||||||
$routes->get('users', 'Users::index');
|
$routes->get('users', 'Users::index');
|
||||||
$routes->get('login', 'Users::login');
|
|
||||||
$routes->get('register', 'Register::index');
|
|
||||||
$routes->post('webserver', 'Webserver::index');
|
|
||||||
|
|
||||||
$routes->group('dashboard', static function ($routes) {
|
|
||||||
$routes->get('/', 'Dashboard::index', ['filter' => 'userSession']);
|
|
||||||
$routes->get('user', 'Dashboard::user', ['filter' => 'userSession']);
|
|
||||||
$routes->get('logout', 'Dashboard::logout');
|
|
||||||
$routes->post('login', 'Dashboard::login');
|
|
||||||
$routes->post('update_user', 'Dashboard::updateUser', ['filter' => 'userSession']);
|
|
||||||
$routes->post('change_passwd', 'Dashboard::changePasswd', ['filter' => 'userSession']);
|
|
||||||
});
|
|
|
@ -10,9 +10,6 @@ class Dashboard extends BaseController
|
||||||
protected $usersModel;
|
protected $usersModel;
|
||||||
use ResponseTrait;
|
use ResponseTrait;
|
||||||
|
|
||||||
const HASH = PASSWORD_DEFAULT;
|
|
||||||
const COST = 16;
|
|
||||||
|
|
||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
$this->usersModel = new UsersModel();
|
$this->usersModel = new UsersModel();
|
||||||
|
@ -35,7 +32,7 @@ class Dashboard extends BaseController
|
||||||
//$tplData['users'] = $users;
|
//$tplData['users'] = $users;
|
||||||
echo get_header('Dashboard', [], true);
|
echo get_header('Dashboard', [], true);
|
||||||
echo view('dashboard/main.php', $tplData);
|
echo view('dashboard/main.php', $tplData);
|
||||||
echo get_footer(['dashboard.js']);
|
echo get_footer();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function login()
|
public function login()
|
||||||
|
@ -52,89 +49,11 @@ class Dashboard extends BaseController
|
||||||
|
|
||||||
echo get_header("My User", [], true);
|
echo get_header("My User", [], true);
|
||||||
echo view('dashboard/user', ['user' => $user]);
|
echo view('dashboard/user', ['user' => $user]);
|
||||||
echo get_footer(['dashboard.js']);
|
echo get_footer();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function users() {
|
public function users() {
|
||||||
$users = $this->usersModel->findAll();
|
$users = $this->usersModel->findAll();
|
||||||
return $this->respond($users);
|
return $this->respond($users);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function logout()
|
|
||||||
{
|
|
||||||
$this->session->destroy();
|
|
||||||
return redirect()->to('login');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function updateUser()
|
|
||||||
{
|
|
||||||
$data = $this->request->getVar();
|
|
||||||
|
|
||||||
$response = [
|
|
||||||
'ok' => true,
|
|
||||||
'msg' => ''
|
|
||||||
];
|
|
||||||
|
|
||||||
$update = $this->usersModel->update($this->session->userid, $data);
|
|
||||||
|
|
||||||
if (!$update) $this->respond(['ok' => false, 'msg' => 'Error on update data']);
|
|
||||||
|
|
||||||
$file = $this->request->getFile('imginput');
|
|
||||||
if ($file && $file->getName())
|
|
||||||
{
|
|
||||||
// Verify is the file is correct and not, for example, a .exe renamed to .jpg
|
|
||||||
$ext = strtolower($file->guessExtension());
|
|
||||||
|
|
||||||
if ($ext != strtolower($file->getExtension())) $response['msg'] = 'The image is not valid';
|
|
||||||
else
|
|
||||||
{
|
|
||||||
|
|
||||||
// First, get the current avatar filnename, and delete if the extension is different
|
|
||||||
$userData = $this->usersModel->getUser($this->session->username);
|
|
||||||
$avatar = FCPATH . '/img/users/'. $userData->img;
|
|
||||||
$oldAvatarFile = new \CodeIgniter\Files\File($avatar);
|
|
||||||
if ($oldAvatarFile->getExtension() != $ext) unlink($avatar);
|
|
||||||
|
|
||||||
$filename = "{$this->session->username}.$ext";
|
|
||||||
$move = $file->move(FCPATH . '/img/users/', $filename, true);
|
|
||||||
if ($move) $update = $this->usersModel->update($this->session->userid, (object) ['img' => $filename]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->respond($response);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function changePasswd()
|
|
||||||
{
|
|
||||||
$data = $this->request->getPost();
|
|
||||||
|
|
||||||
$response = [
|
|
||||||
'ok' => false,
|
|
||||||
'msg' => ''
|
|
||||||
];
|
|
||||||
|
|
||||||
if (!$data)
|
|
||||||
{
|
|
||||||
$response['msg'] = 'Not data send';
|
|
||||||
return $this->respond($response);
|
|
||||||
}
|
|
||||||
|
|
||||||
$query = $this->usersModel->select('password')->where('id', $this->session->userid)->get(1);
|
|
||||||
|
|
||||||
if (!$query) return $this->respond($response);
|
|
||||||
|
|
||||||
$user = $query->getRow();
|
|
||||||
if (!password_verify($data['cur_password'], $user->password))
|
|
||||||
{
|
|
||||||
$response['msg'] = 'The current password is not correct';
|
|
||||||
return $this->respond($response);
|
|
||||||
}
|
|
||||||
|
|
||||||
$password = password_hash($data['password'], self::HASH, [self::COST]);
|
|
||||||
|
|
||||||
$update = $this->usersModel->update($this->session->userid, (object) ['password' => $password]);
|
|
||||||
|
|
||||||
$response['ok'] = $update;
|
|
||||||
return $this->respond($response);
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -1,35 +0,0 @@
|
||||||
<?php
|
|
||||||
namespace App\Filters;
|
|
||||||
|
|
||||||
use CodeIgniter\Filters\FilterInterface;
|
|
||||||
use CodeIgniter\HTTP\RequestInterface;
|
|
||||||
use CodeIgniter\HTTP\ResponseInterface;
|
|
||||||
use CodeIgniter\HTTP\IncomingRequest;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Este filtro sirve para comprobar si la sesión aun no se cerro por+
|
|
||||||
* exceder el limite de tiempo, para así evitar errores, sobre todo al guardar datos
|
|
||||||
*/
|
|
||||||
class CheckUserSession implements FilterInterface
|
|
||||||
{
|
|
||||||
public function before(RequestInterface $request, $arguments = null)
|
|
||||||
{
|
|
||||||
assert($request instanceof IncomingRequest);
|
|
||||||
$session = session();
|
|
||||||
|
|
||||||
if (!$session->has('userid'))
|
|
||||||
{
|
|
||||||
$session->destroy();
|
|
||||||
$response = service('response');
|
|
||||||
$response->setHeader('Location', base_url('login'));
|
|
||||||
$response->setStatusCode(302);
|
|
||||||
|
|
||||||
return $response->send();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public function after(RequestInterface $request, ResponseInterface $response, $arguments = null)
|
|
||||||
{
|
|
||||||
// Do something here
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -5,7 +5,7 @@
|
||||||
<img id="img_404" src="<?= base_url('img/404.svg') ?>" />
|
<img id="img_404" src="<?= base_url('img/404.svg') ?>" />
|
||||||
|
|
||||||
<p id="text_404">
|
<p id="text_404">
|
||||||
<?php if (!empty($message) && $message !== '(null)') : ?>
|
<?php if (! empty($message) && $message !== '(null)') : ?>
|
||||||
<?= nl2br(esc($message)) ?>
|
<?= nl2br(esc($message)) ?>
|
||||||
<?php else : ?>
|
<?php else : ?>
|
||||||
Sorry! Cannot seem to find the page you were looking for.
|
Sorry! Cannot seem to find the page you were looking for.
|
||||||
|
|
|
@ -1,27 +0,0 @@
|
||||||
<!doctype html>
|
|
||||||
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
|
|
||||||
<title><?=$title?></title>
|
|
||||||
<link rel="stylesheet" type="text/css" href="<?= base_url() ?>/css/microcss.css" />
|
|
||||||
<link rel="stylesheet" type="text/css" href="<?= base_url() ?>/css/fontello-embedded.css" />
|
|
||||||
<link rel="stylesheet" type="text/css" href="<?= base_url() ?>/css/sd-icons.css" />
|
|
||||||
<link rel="stylesheet" type="text/css" href="<?= base_url() ?>/css/style.css" />
|
|
||||||
<link rel="stylesheet" type="text/css" href="<?= base_url() ?>/css/dashboard.css" />
|
|
||||||
</head>
|
|
||||||
<body class="row">
|
|
||||||
<nav id="dashmenu" class="navbar navbar-vert col-2">
|
|
||||||
<a href="<?= base_url() ?>/dashboard/user"><i class="sd-account_box"></i>My User</a>
|
|
||||||
<!--a href="<?= base_url() ?>/dashboard/users"><i class="sd-groups"></i>Users</a-->
|
|
||||||
<a href="<?= base_url() ?>/dashboard/races"><i class="sd-sports"></i>Races</a>
|
|
||||||
<a href="<?= base_url() ?>/dashboard/logout"><i class="sd-logout"></i>Logout</a>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
<header>
|
|
||||||
<h3><?=$title?></h3>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<div id="dashboard" class="col-10">
|
|
|
@ -1 +0,0 @@
|
||||||
<h1>Speed Dreams Dashboard</h1>
|
|
|
@ -1,288 +0,0 @@
|
||||||
<h3>User data</h3>
|
|
||||||
<div id="user-edit-form">
|
|
||||||
<form method="post" enctype="multipart/form-data">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-2">
|
|
||||||
<label>Username:</label>
|
|
||||||
</div>
|
|
||||||
<div class="col-6">
|
|
||||||
<input type="text" value="<?=$user->username?>" disabled />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-2">
|
|
||||||
<label>Email:</label>
|
|
||||||
</div>
|
|
||||||
<div class="col-6">
|
|
||||||
<input type="email" id="email" name="email" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$" value="<?=$user->email?>" />
|
|
||||||
<span class="input-error">Email address isn't valid</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-2">
|
|
||||||
<label>Nation:</label>
|
|
||||||
</div>
|
|
||||||
<div class="col-6">
|
|
||||||
<select name="nation" id="flaginput" value="<?=$user->nation?>">
|
|
||||||
<option>Afghanistan</option>
|
|
||||||
<option>Albania</option>
|
|
||||||
<option>Algeria</option>
|
|
||||||
<option>American Samoa</option>
|
|
||||||
<option>Andorra</option>
|
|
||||||
<option>Angola</option>
|
|
||||||
<option>Anguilla</option>
|
|
||||||
<option>Antigua and Barbuda</option>
|
|
||||||
<option>Argentina</option>
|
|
||||||
<option>Armenia</option>
|
|
||||||
<option>Aruba</option>
|
|
||||||
<option>Australia</option>
|
|
||||||
<option>Austria</option>
|
|
||||||
<option>Azerbaijan</option>
|
|
||||||
<option>Bahamas</option>
|
|
||||||
<option>Bahrain</option>
|
|
||||||
<option>Bangladesh</option>
|
|
||||||
<option>Barbados</option>
|
|
||||||
<option>Belarus</option>
|
|
||||||
<option>Belgium</option>
|
|
||||||
<option>Belize</option>
|
|
||||||
<option>Benin</option>
|
|
||||||
<option>Bermuda</option>
|
|
||||||
<option>Bhutan</option>
|
|
||||||
<option>Bolivia</option>
|
|
||||||
<option>Bosnia</option>
|
|
||||||
<option>Botswana</option>
|
|
||||||
<option>Brazil</option>
|
|
||||||
<option>British Virgin Islands</option>
|
|
||||||
<option>Brunei</option>
|
|
||||||
<option>Bulgaria</option>
|
|
||||||
<option>Burkina Faso</option>
|
|
||||||
<option>Burundi</option>
|
|
||||||
<option>Cambodia</option>
|
|
||||||
<option>Cameroon</option>
|
|
||||||
<option>Canada</option>
|
|
||||||
<option>Cape Verde</option>
|
|
||||||
<option>Cayman Islands</option>
|
|
||||||
<option>Central African Republic</option>
|
|
||||||
<option>Chad</option>
|
|
||||||
<option>Chile</option>
|
|
||||||
<option>China</option>
|
|
||||||
<option>Christmas Island</option>
|
|
||||||
<option>Colombia</option>
|
|
||||||
<option>Comoros</option>
|
|
||||||
<option>Cook Islands</option>
|
|
||||||
<option>Costa Rica</option>
|
|
||||||
<option>Croatia</option>
|
|
||||||
<option>Cuba</option>
|
|
||||||
<option>Cyprus</option>
|
|
||||||
<option>Czech Republic</option>
|
|
||||||
<option>Côte d'Ivoire</option>
|
|
||||||
<option>Democratic Republic of the Congo</option>
|
|
||||||
<option>Denmark</option>
|
|
||||||
<option>Djibouti</option>
|
|
||||||
<option>Dominica</option>
|
|
||||||
<option>Dominican Republic</option>
|
|
||||||
<option>Ecuador</option>
|
|
||||||
<option>Egypt</option>
|
|
||||||
<option>El Salvador</option>
|
|
||||||
<option>Equatorial Guinea</option>
|
|
||||||
<option>Eritrea</option>
|
|
||||||
<option>Estonia</option>
|
|
||||||
<option>Ethiopia</option>
|
|
||||||
<option>Falkland Islands</option>
|
|
||||||
<option>Faroe Islands</option>
|
|
||||||
<option>Fiji</option>
|
|
||||||
<option>Finland</option>
|
|
||||||
<option>France</option>
|
|
||||||
<option>French Polynesia</option>
|
|
||||||
<option>Gabon</option>
|
|
||||||
<option>Gambia</option>
|
|
||||||
<option>Georgia</option>
|
|
||||||
<option>Germany</option>
|
|
||||||
<option>Ghana</option>
|
|
||||||
<option>Gibraltar</option>
|
|
||||||
<option>Greece</option>
|
|
||||||
<option>Greenland</option>
|
|
||||||
<option>Grenada</option>
|
|
||||||
<option>Guam</option>
|
|
||||||
<option>Guatemala</option>
|
|
||||||
<option>Guinea</option>
|
|
||||||
<option>Guinea Bissau</option>
|
|
||||||
<option>Guyana</option>
|
|
||||||
<option>Haiti</option>
|
|
||||||
<option>Honduras</option>
|
|
||||||
<option>Hong Kong</option>
|
|
||||||
<option>Hungary</option>
|
|
||||||
<option>Iceland</option>
|
|
||||||
<option>India</option>
|
|
||||||
<option>Indonesia</option>
|
|
||||||
<option>Iran</option>
|
|
||||||
<option>Iraq</option>
|
|
||||||
<option>Ireland</option>
|
|
||||||
<option>Israel</option>
|
|
||||||
<option>Italy</option>
|
|
||||||
<option>Jamaica</option>
|
|
||||||
<option>Japan</option>
|
|
||||||
<option>Jordan</option>
|
|
||||||
<option>Kazakhstan</option>
|
|
||||||
<option>Kenya</option>
|
|
||||||
<option>Kiribati</option>
|
|
||||||
<option>Kuwait</option>
|
|
||||||
<option>Kyrgyzstan</option>
|
|
||||||
<option>Laos</option>
|
|
||||||
<option>Latvia</option>
|
|
||||||
<option>Lebanon</option>
|
|
||||||
<option>Lesotho</option>
|
|
||||||
<option>Liberia</option>
|
|
||||||
<option>Libya</option>
|
|
||||||
<option>Liechtenstein</option>
|
|
||||||
<option>Lithuania</option>
|
|
||||||
<option>Luxembourg</option>
|
|
||||||
<option>Macao</option>
|
|
||||||
<option>Macedonia</option>
|
|
||||||
<option>Madagascar</option>
|
|
||||||
<option>Malawi</option>
|
|
||||||
<option>Malaysia</option>
|
|
||||||
<option>Maldives</option>
|
|
||||||
<option>Mali</option>
|
|
||||||
<option>Malta</option>
|
|
||||||
<option>Marshall Islands</option>
|
|
||||||
<option>Martinique</option>
|
|
||||||
<option>Mauritania</option>
|
|
||||||
<option>Mauritius</option>
|
|
||||||
<option>Mexico</option>
|
|
||||||
<option>Micronesia</option>
|
|
||||||
<option>Moldova</option>
|
|
||||||
<option>Monaco</option>
|
|
||||||
<option>Mongolia</option>
|
|
||||||
<option>Montserrat</option>
|
|
||||||
<option>Morocco</option>
|
|
||||||
<option>Mozambique</option>
|
|
||||||
<option>Myanmar</option>
|
|
||||||
<option>Namibia</option>
|
|
||||||
<option>Nauru</option>
|
|
||||||
<option>Nepal</option>
|
|
||||||
<option>Netherlands</option>
|
|
||||||
<option>Netherlands Antilles</option>
|
|
||||||
<option>New Zealand</option>
|
|
||||||
<option>Nicaragua</option>
|
|
||||||
<option>Niger</option>
|
|
||||||
<option>Nigeria</option>
|
|
||||||
<option>Niue</option>
|
|
||||||
<option>Norfolk Island</option>
|
|
||||||
<option>North Korea</option>
|
|
||||||
<option>Norway</option>
|
|
||||||
<option>Oman</option>
|
|
||||||
<option>Pakistan</option>
|
|
||||||
<option>Palau</option>
|
|
||||||
<option>Panama</option>
|
|
||||||
<option>Papua New Guinea</option>
|
|
||||||
<option>Paraguay</option>
|
|
||||||
<option>Peru</option>
|
|
||||||
<option>Philippines</option>
|
|
||||||
<option>Pitcairn Islands</option>
|
|
||||||
<option>Poland</option>
|
|
||||||
<option>Portugal</option>
|
|
||||||
<option>Puerto Rico</option>
|
|
||||||
<option>Qatar</option>
|
|
||||||
<option>Republic of the Congo</option>
|
|
||||||
<option>Romania</option>
|
|
||||||
<option>Russian Federation</option>
|
|
||||||
<option>Rwanda</option>
|
|
||||||
<option>Saint Kitts and Nevis</option>
|
|
||||||
<option>Saint Lucia</option>
|
|
||||||
<option>Saint Pierre</option>
|
|
||||||
<option>Saint Vicent and the Grenadines</option>
|
|
||||||
<option>Samoa</option>
|
|
||||||
<option>San Marino</option>
|
|
||||||
<option>Sao Tomé and Príncipe</option>
|
|
||||||
<option>Saudi Arabia</option>
|
|
||||||
<option>Senegal</option>
|
|
||||||
<option>Serbia and Montenegro</option>
|
|
||||||
<option>Seychelles</option>
|
|
||||||
<option>Sierra Leone</option>
|
|
||||||
<option>Singapore</option>
|
|
||||||
<option>Slovakia</option>
|
|
||||||
<option>Slovenia</option>
|
|
||||||
<option>Soloman Islands</option>
|
|
||||||
<option>Somalia</option>
|
|
||||||
<option>South Africa</option>
|
|
||||||
<option>South Georgia</option>
|
|
||||||
<option>South Korea</option>
|
|
||||||
<option>Soviet Union</option>
|
|
||||||
<option>Spain</option>
|
|
||||||
<option>Sri Lanka</option>
|
|
||||||
<option>Sudan</option>
|
|
||||||
<option>Suriname</option>
|
|
||||||
<option>Swaziland</option>
|
|
||||||
<option>Sweden</option>
|
|
||||||
<option>Switzerland</option>
|
|
||||||
<option>Syria</option>
|
|
||||||
<option>Taiwan</option>
|
|
||||||
<option>Tajikistan</option>
|
|
||||||
<option>Tanzania</option>
|
|
||||||
<option>Thailand</option>
|
|
||||||
<option>Tibet</option>
|
|
||||||
<option>Timor-Leste</option>
|
|
||||||
<option>Togo</option>
|
|
||||||
<option>Tonga</option>
|
|
||||||
<option>Trinidad and Tobago</option>
|
|
||||||
<option>Tunisia</option>
|
|
||||||
<option>Turkey</option>
|
|
||||||
<option>Turkmenistan</option>
|
|
||||||
<option>Turks and Caicos Islands</option>
|
|
||||||
<option>Tuvalu</option>
|
|
||||||
<option>UAE</option>
|
|
||||||
<option>Uganda</option>
|
|
||||||
<option>Ukraine</option>
|
|
||||||
<option>United Kingdom</option>
|
|
||||||
<option>United States of America</option>
|
|
||||||
<option>Uruguay</option>
|
|
||||||
<option>US Virgin Islands</option>
|
|
||||||
<option>Uzbekistan</option>
|
|
||||||
<option>Vanuatu</option>
|
|
||||||
<option>Vatican City</option>
|
|
||||||
<option>Venezuela</option>
|
|
||||||
<option>Vietnam</option>
|
|
||||||
<option>Wallis and Futuna</option>
|
|
||||||
<option>Yemen</option>
|
|
||||||
<option>Zambia</option>
|
|
||||||
<option>Zimbabwe</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-2">
|
|
||||||
<label>Profile image:</label>
|
|
||||||
</div>
|
|
||||||
<div class="col-6">
|
|
||||||
<input type="file" name="imginput" id="imginput" />
|
|
||||||
</div>
|
|
||||||
<div class="col-12">
|
|
||||||
<img src="<?= base_url() . "/img/users/{$user->img}" ?>" id="profile-img">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="register-right">
|
|
||||||
<input type="submit" value="Register" class="primary" />
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<h3>Password</h3>
|
|
||||||
<div id="user-passwd-form">
|
|
||||||
<form method="post" enctype="multipart/form-data" action="/dashboard/change_passwd">
|
|
||||||
<label>Current password:</label>
|
|
||||||
<input type="password" name="cur_password" id="cur_password" required />
|
|
||||||
<label>Password:</label>
|
|
||||||
<input type="password" name="password" id="password" required />
|
|
||||||
<label>Repeat password:</label>
|
|
||||||
<input type="password" name="passwordcheck" id="passwordcheck" required />
|
|
||||||
<span class="input-error" id="passwd-error">Passwords don't match</span>
|
|
||||||
<div class="register-right">
|
|
||||||
<input type="submit" value="Register" class="primary" />
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
const nation = '<?=$user->nation?>'
|
|
||||||
</script>
|
|
|
@ -8,6 +8,6 @@
|
||||||
<button type="submit">Login</button>
|
<button type="submit">Login</button>
|
||||||
</form>
|
</form>
|
||||||
<div id="login-error" class="error">
|
<div id="login-error" class="error">
|
||||||
User and/or passwd incorrect.
|
Usuario y/o contraseña incorrecto.
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
|
@ -3,7 +3,6 @@
|
||||||
const base_url = '<?= base_url() ?>';
|
const base_url = '<?= base_url() ?>';
|
||||||
</script>
|
</script>
|
||||||
<script type="text/javascript" src="<?=base_url()?>/js/pequejs.js"></script>
|
<script type="text/javascript" src="<?=base_url()?>/js/pequejs.js"></script>
|
||||||
<script type="text/javascript" src="<?=base_url()?>/js/axios.min.js"></script>
|
|
||||||
<script type="text/javascript" src="<?=base_url()?>/js/app.js"></script>
|
<script type="text/javascript" src="<?=base_url()?>/js/app.js"></script>
|
||||||
<?php if(!empty($custom_js)): ?>
|
<?php if(!empty($custom_js)): ?>
|
||||||
<?php foreach ($custom_js as $js): ?>
|
<?php foreach ($custom_js as $js): ?>
|
||||||
|
|
|
@ -12,10 +12,9 @@
|
||||||
<body>
|
<body>
|
||||||
<nav class="mainMenu">
|
<nav class="mainMenu">
|
||||||
<a href="<?= base_url() ?>">Home</a>
|
<a href="<?= base_url() ?>">Home</a>
|
||||||
<a href="<?= base_url('users') ?>">Racers</a>
|
<a href="<?= base_url() ?>/users">Racers</a>
|
||||||
<!--<li><a href="./live.php">Live stats</a></li>-->
|
<!--<li><a href="./live.php">Live stats</a></li>-->
|
||||||
<a href="<?= base_url('register') ?>">Register</a>
|
<a href="<?= base_url() ?>/register">Register</a>
|
||||||
<a href="<?= base_url('login') ?>">Login</a>
|
|
||||||
<a href="https://speed-dreams.net" target="_black">Blog</a>
|
<a href="https://speed-dreams.net" target="_black">Blog</a>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
|
|
|
@ -20,30 +20,13 @@ a.selected {
|
||||||
|
|
||||||
#dashmenu,
|
#dashmenu,
|
||||||
header {
|
header {
|
||||||
padding-top: 1rem;
|
margin-top: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Menu */
|
/* Menu */
|
||||||
|
|
||||||
#dashmenu {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
height: 100vh;
|
|
||||||
}
|
|
||||||
|
|
||||||
#dashmenu a {
|
#dashmenu a {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
padding: 8px;
|
|
||||||
transition: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#dashmenu a:hover {
|
|
||||||
background-color: #4a4a4a;
|
|
||||||
color: #eee;
|
|
||||||
}
|
|
||||||
|
|
||||||
#dashmenu a > i {
|
|
||||||
margin-right: 8px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Edit user */
|
/* Edit user */
|
||||||
|
|
Binary file not shown.
|
@ -1,18 +0,0 @@
|
||||||
<?xml version="1.0" standalone="no"?>
|
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<metadata>Generated by IcoMoon</metadata>
|
|
||||||
<defs>
|
|
||||||
<font id="sd" horiz-adv-x="1024">
|
|
||||||
<font-face units-per-em="1024" ascent="960" descent="-64" />
|
|
||||||
<missing-glyph horiz-adv-x="1024" />
|
|
||||||
<glyph unicode=" " horiz-adv-x="512" d="" />
|
|
||||||
<glyph unicode="" glyph-name="git" d="M1004.629 493.653l-447.104 447.061c-25.771 25.728-67.499 25.728-93.355 0l-92.629-92.8 117.76-117.76c27.52 9.173 58.837 2.987 80.597-18.816 22.016-21.973 28.075-53.675 18.688-81.067l113.408-113.493c27.52 9.515 59.179 3.328 81.067-18.56 30.763-30.72 30.763-80.384 0-111.104-30.677-30.677-80.256-30.677-110.933 0-22.997 23.083-28.757 57.045-17.237 85.163l-106.197 105.643v-278.4c7.509-3.669 14.592-8.661 20.821-14.848 30.421-30.763 30.421-80.341 0-110.933-30.677-30.763-80.597-30.763-111.317 0-30.677 30.677-30.677 80.171 0 110.848 7.765 7.68 16.512 13.483 25.813 17.323v281.131c-9.259 3.883-18.091 9.472-25.6 17.109-23.253 23.253-28.843 57.259-16.896 85.717l-115.712 116.267-306.603-306.389c-25.6-25.813-25.6-67.584 0-93.397l447.147-447.019c25.771-25.771 67.499-25.771 93.269 0l445.013 445.013c25.813 25.728 25.813 67.499 0 93.312z" />
|
|
||||||
<glyph unicode="" glyph-name="mastodon" d="M989.568 623.829c0 222.123-145.536 287.232-145.536 287.232-73.387 33.707-199.424 47.872-330.283 48.939h-3.243c-130.901-1.067-256.853-15.232-330.24-48.939 0 0-145.536-65.109-145.536-287.232 0-50.859-0.981-111.701 0.64-176.171 5.291-217.259 39.851-431.317 240.683-484.48 92.587-24.491 172.117-29.653 236.16-26.112 116.139 6.4 181.333 41.472 181.333 41.472l-3.84 84.267c0 0-82.987-26.155-176.171-22.997-92.373 3.157-189.824 9.941-204.757 123.349-1.305 9.295-2.050 20.032-2.050 30.944 0 0.296 0.001 0.592 0.002 0.889v-0.046c0 0 90.667-22.187 205.525-27.435 70.229-3.2 136.107 4.139 203.008 12.075 128.299 15.317 240 94.379 254.037 166.613 22.059 113.707 20.267 277.632 20.267 277.632zM817.877 337.579h-106.539v261.077c0 55.040-23.168 82.944-69.461 82.944-51.2 0-76.885-33.109-76.885-98.645v-142.891h-105.941v142.933c0 65.536-25.685 98.645-76.885 98.645-46.293 0-69.461-27.947-69.461-82.944v-261.077h-106.539v268.928c0 54.997 13.995 98.688 42.112 130.987 29.013 32.341 66.944 48.896 114.091 48.896 54.528 0 95.829-20.949 123.136-62.891l26.496-44.501 26.539 44.501c27.307 41.941 68.608 62.891 123.136 62.891 47.104 0 85.077-16.555 114.091-48.896 28.075-32.299 42.069-75.989 42.069-130.987z" />
|
|
||||||
<glyph unicode="" glyph-name="peertube" d="M128 960v-512l384 256zM128 448v-512l384 256zM512 704v-512l384 256z" />
|
|
||||||
<glyph unicode="" glyph-name="youtube" d="M1002.453 695.253c-12.365 43.307-45.781 76.722-88.183 88.866l-0.905 0.222c-79.787 21.376-400.896 21.376-400.896 21.376s-320.299 0.427-400.896-21.376c-43.307-12.365-76.722-45.781-88.866-88.183l-0.222-0.905c-14.173-72.978-22.281-156.904-22.281-242.723 0-1.743 0.003-3.484 0.010-5.225l-0.001 0.268c-0.004-1.198-0.006-2.617-0.006-4.035 0-85.813 8.107-169.732 23.598-251.033l-1.32 8.327c12.365-43.307 45.781-76.722 88.183-88.866l0.905-0.222c79.701-21.419 400.896-21.419 400.896-21.419s320.256 0 400.896 21.419c43.307 12.365 76.722 45.781 88.866 88.183l0.222 0.905c13.59 71.472 21.364 153.686 21.364 237.715 0 3.173-0.011 6.344-0.033 9.513l0.003-0.486c0.024 2.951 0.037 6.439 0.037 9.929 0 84.041-7.776 166.267-22.648 245.996l1.278-8.245zM409.984 294.357v306.901l267.264-153.685z" />
|
|
||||||
<glyph unicode="" glyph-name="sports_score_24dp_E8EAED_FILL0_wght400_GRAD0_opsz24" d="M384 704h85.333v85.333h-85.333v-85.333zM554.667 704v85.333h85.333v-85.333h-85.333zM384 362.667v85.333h85.333v-85.333h-85.333zM725.333 533.333v85.333h85.333v-85.333h-85.333zM725.333 362.667v85.333h85.333v-85.333h-85.333zM554.667 362.667v85.333h85.333v-85.333h-85.333zM725.333 704v85.333h85.333v-85.333h-85.333zM469.333 618.667v85.333h85.333v-85.333h-85.333zM213.333 106.667v682.667h85.333v-85.333h85.333v-85.333h-85.333v-85.333h85.333v-85.333h-85.333v-341.333h-85.333zM640 448v85.333h85.333v-85.333h-85.333zM469.333 448v85.333h85.333v-85.333h-85.333zM384 533.333v85.333h85.333v-85.333h-85.333zM554.667 533.333v85.333h85.333v-85.333h-85.333zM640 618.667v85.333h85.333v-85.333h-85.333z" />
|
|
||||||
<glyph unicode="" glyph-name="logout_24dp_E8EAED_FILL0_wght400_GRAD0_opsz24" d="M213.333 64q-35.2 0-60.267 25.067t-25.067 60.267v597.333q0 35.2 25.067 60.267t60.267 25.067h298.667v-85.333h-298.667v-597.333h298.667v-85.333h-298.667zM682.667 234.667l-58.667 61.867 108.8 108.8h-348.8v85.333h348.8l-108.8 108.8 58.667 61.867 213.333-213.333-213.333-213.333z" />
|
|
||||||
<glyph unicode="" glyph-name="groups_24dp_E8EAED_FILL0_wght400_GRAD0_opsz24" d="M0 192v67.2q0 45.867 46.933 74.667t123.733 28.8q13.867 0 26.667-0.533t24.533-2.667q-14.933-22.4-22.4-46.933t-7.467-51.2v-69.333h-192zM256 192v69.333q0 34.133 18.667 62.4t52.8 49.6 81.6 32 102.933 10.667q56.533 0 104-10.667t81.6-32 52.267-49.6 18.133-62.4v-69.333h-512zM832 192v69.333q0 27.733-6.933 52.267t-20.8 45.867q11.733 2.133 24 2.667t25.067 0.533q76.8 0 123.733-28.267t46.933-75.2v-67.2h-192zM346.667 277.333h331.733q-10.667 21.333-59.2 37.333t-107.2 16-107.2-16-58.133-37.333zM170.667 405.333q-35.2 0-60.267 25.067t-25.067 60.267q0 36.267 25.067 60.8t60.267 24.533q36.267 0 60.8-24.533t24.533-60.8q0-35.2-24.533-60.267t-60.8-25.067zM853.333 405.333q-35.2 0-60.267 25.067t-25.067 60.267q0 36.267 25.067 60.8t60.267 24.533q36.267 0 60.8-24.533t24.533-60.8q0-35.2-24.533-60.267t-60.8-25.067zM512 448q-53.333 0-90.667 37.333t-37.333 90.667q0 54.4 37.333 91.2t90.667 36.8q54.4 0 91.2-36.8t36.8-91.2q0-53.333-36.8-90.667t-91.2-37.333zM512 533.333q18.133 0 30.4 12.267t12.267 30.4-12.267 30.4-30.4 12.267-30.4-12.267-12.267-30.4 12.267-30.4 30.4-12.267z" />
|
|
||||||
<glyph unicode="" glyph-name="account_box_24dp_E8EAED_FILL0_wght400_GRAD0_opsz24" d="M213.333 198.4q57.6 56.533 133.867 89.067t164.8 32.533 164.8-32.533 133.867-89.067v548.267h-597.333v-548.267zM512 405.333q61.867 0 105.6 43.733t43.733 105.6-43.733 105.6-105.6 43.733-105.6-43.733-43.733-105.6 43.733-105.6 105.6-43.733zM213.333 64q-35.2 0-60.267 25.067t-25.067 60.267v597.333q0 35.2 25.067 60.267t60.267 25.067h597.333q35.2 0 60.267-25.067t25.067-60.267v-597.333q0-35.2-25.067-60.267t-60.267-25.067h-597.333zM286.933 149.333h450.133q-46.933 41.6-106.133 63.467t-118.933 21.867-120-21.867-105.067-63.467zM512 490.667q-26.667 0-45.333 18.667t-18.667 45.333 18.667 45.333 45.333 18.667 45.333-18.667 18.667-45.333-18.667-45.333-45.333-18.667z" />
|
|
||||||
</font></defs></svg>
|
|
Before Width: | Height: | Size: 6.4 KiB |
Binary file not shown.
Binary file not shown.
|
@ -1,55 +0,0 @@
|
||||||
@font-face {
|
|
||||||
font-family: 'sd';
|
|
||||||
src: url('fonts/sd.eot?xx4vmn');
|
|
||||||
src: url('fonts/sd.eot?xx4vmn#iefix') format('embedded-opentype'),
|
|
||||||
url('fonts/sd.ttf?xx4vmn') format('truetype'),
|
|
||||||
url('fonts/sd.woff?xx4vmn') format('woff'),
|
|
||||||
url('fonts/sd.svg?xx4vmn#sd') format('svg');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
font-display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
[class^="sd-"], [class*=" sd-"] {
|
|
||||||
/* use !important to prevent issues with browser extensions that change fonts */
|
|
||||||
font-family: 'sd' !important;
|
|
||||||
speak: never;
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: normal;
|
|
||||||
font-variant: normal;
|
|
||||||
text-transform: none;
|
|
||||||
line-height: 1;
|
|
||||||
|
|
||||||
/* Better Font Rendering =========== */
|
|
||||||
-webkit-font-smoothing: antialiased;
|
|
||||||
-moz-osx-font-smoothing: grayscale;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sd-git:before {
|
|
||||||
content: "\e900";
|
|
||||||
color: #f05032;
|
|
||||||
}
|
|
||||||
.sd-mastodon:before {
|
|
||||||
content: "\e901";
|
|
||||||
color: #3088d4;
|
|
||||||
}
|
|
||||||
.sd-peertube:before {
|
|
||||||
content: "\e902";
|
|
||||||
color: #f1680d;
|
|
||||||
}
|
|
||||||
.sd-youtube:before {
|
|
||||||
content: "\e903";
|
|
||||||
color: #f00;
|
|
||||||
}
|
|
||||||
.sd-sports:before {
|
|
||||||
content: "\e904";
|
|
||||||
}
|
|
||||||
.sd-logout:before {
|
|
||||||
content: "\e905";
|
|
||||||
}
|
|
||||||
.sd-groups:before {
|
|
||||||
content: "\e906";
|
|
||||||
}
|
|
||||||
.sd-account_box:before {
|
|
||||||
content: "\e907";
|
|
||||||
}
|
|
|
@ -589,7 +589,6 @@ sd-carcategoryselection {
|
||||||
max-width: 380px;
|
max-width: 380px;
|
||||||
margin: auto;
|
margin: auto;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
display: none;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#login-error::before {
|
#login-error::before {
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -14,43 +14,4 @@ $('#login-form').on('submit', function(e) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#user-edit-form > form').on('submit', function(e) {
|
|
||||||
e.preventDefault()
|
|
||||||
|
|
||||||
const formData = new FormData(this);
|
|
||||||
|
|
||||||
axios.post(`${base_url}/dashboard/update_user`, formData)
|
|
||||||
.then( resp => {
|
|
||||||
if (resp.data) window.location.reload()
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
if (typeof nation !== 'undefined') {
|
|
||||||
$('#flaginput > option').each( ele => {
|
|
||||||
if (ele.innerText == nation) {
|
|
||||||
$(ele).attr('selected', true)
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
$('#user-passwd-form > form').on('submit', function(e) {
|
|
||||||
e.preventDefault()
|
|
||||||
|
|
||||||
$('#passwd-error').hide();
|
|
||||||
const formData = new FormData(this);
|
|
||||||
if (formData.get('password') != formData.get('passwordcheck')) {
|
|
||||||
$('#passwd-error').show();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
axios.post(`${base_url}/dashboard/change_passwd`, formData)
|
|
||||||
.then( resp => {
|
|
||||||
if (resp.data) {
|
|
||||||
if (resp.data.ok) window.location.reload()
|
|
||||||
else alert(resp.data.msg)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
Loading…
Reference in New Issue