merge dev branch
This commit is contained in:
commit
58fbacaa52
25 changed files with 765 additions and 104 deletions
|
|
@ -28,11 +28,14 @@ return [
|
|||
],
|
||||
'routes' => [
|
||||
require(__DIR__ . '/routes/logout.php'),
|
||||
require(__DIR__ . '/routes/login.php'),
|
||||
require(__DIR__ . '/routes/toggle-favorite.php'),
|
||||
require(__DIR__ . '/routes/upload-images.php'),
|
||||
require(__DIR__ . '/routes/save-page.php'),
|
||||
require(__DIR__ . '/routes/save-file.php'),
|
||||
require(__DIR__ . '/routes/remove-file.php'),
|
||||
require(__DIR__ . '/routes/update-password.php'),
|
||||
require(__DIR__ . '/routes/update-email.php'),
|
||||
require(__DIR__ . '/routes/upload-pdf.php'),
|
||||
require(__DIR__ . '/routes/validate-brief.php'),
|
||||
require(__DIR__ . '/routes/request-project-creation.php'),
|
||||
|
|
|
|||
35
public/site/config/routes/login.php
Normal file
35
public/site/config/routes/login.php
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
"pattern" => "login.json",
|
||||
"method" => "POST",
|
||||
"action" => function () {
|
||||
$json = file_get_contents("php://input");
|
||||
$data = json_decode($json);
|
||||
|
||||
$kirby = kirby();
|
||||
|
||||
$email = $data->email;
|
||||
$password = $data->password;
|
||||
|
||||
if(V::email($email)) {
|
||||
try {
|
||||
$kirby->auth()->login($email, $password, true);
|
||||
return json_encode([
|
||||
"status" => "success",
|
||||
"role" => (string) $kirby->user()->role()
|
||||
]);
|
||||
} catch (Exception $e) {
|
||||
return json_encode([
|
||||
"status" => "error",
|
||||
"message" => "<strong>Email ou mot de passe invalide.</strong><br>Contactez l'administrateur pour demander la réinitialisation de vos informations de connexion."
|
||||
]);
|
||||
}
|
||||
} else {
|
||||
return json_encode([
|
||||
"status" => "error",
|
||||
"message" => "<strong>Email invalide.</strong>"
|
||||
]);
|
||||
}
|
||||
},
|
||||
];
|
||||
|
|
@ -10,6 +10,6 @@ return [
|
|||
session_start();
|
||||
}
|
||||
|
||||
go(site()->panel()->url());
|
||||
go(site()->url() . '/login');
|
||||
},
|
||||
];
|
||||
|
|
|
|||
22
public/site/config/routes/update-email.php
Normal file
22
public/site/config/routes/update-email.php
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'pattern' => '/update-email.json',
|
||||
'method' => 'POST',
|
||||
'action' => function() {
|
||||
$json = file_get_contents("php://input");
|
||||
$data = json_decode($json);
|
||||
|
||||
try {
|
||||
kirby()->user()->changeEmail($data->email);
|
||||
return [
|
||||
'status' => 'success'
|
||||
];
|
||||
} catch (\Throwable $th) {
|
||||
return [
|
||||
'status' => 'error',
|
||||
'message' => 'Impossible de mettre à jour l\'email : ' . $th->getMessage() . ' in file ' . $th->getFile() . ' line ' . $th->getLine()
|
||||
];
|
||||
}
|
||||
}
|
||||
];
|
||||
22
public/site/config/routes/update-password.php
Normal file
22
public/site/config/routes/update-password.php
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'pattern' => '/update-password.json',
|
||||
'method' => 'POST',
|
||||
'action' => function() {
|
||||
$json = file_get_contents("php://input");
|
||||
$data = json_decode($json);
|
||||
|
||||
try {
|
||||
kirby()->user()->changePassword($data->password);
|
||||
return [
|
||||
'status' => 'success'
|
||||
];
|
||||
} catch (\Throwable $th) {
|
||||
return [
|
||||
'status' => 'error',
|
||||
'message' => 'Impossible de mettre à jour le mot de passe : ' . $th->getMessage() . ' in file ' . $th->getFile() . ' line ' . $th->getLine()
|
||||
];
|
||||
}
|
||||
}
|
||||
];
|
||||
|
|
@ -1,27 +1,46 @@
|
|||
<?php
|
||||
|
||||
return function ($page, $kirby, $site) {
|
||||
if (!$kirby->user()) {
|
||||
go($site->panel()->url());
|
||||
if (!$kirby->user() && $page->uri() !== 'login') {
|
||||
go('/login');
|
||||
}
|
||||
|
||||
$data = $page->toArray();
|
||||
$data['template'] = (string) $page->template();
|
||||
$data['newInspirations'] = (bool) page('inspirations')->children()->findBy('new', 'true');
|
||||
|
||||
$userData = [
|
||||
"role" => (string) $kirby->user()->role(),
|
||||
"uuid" => (string) $kirby->user()->uuid()
|
||||
];
|
||||
|
||||
if ($kirby->user()->client()->exists() && $kirby->user()->client()->isNotEmpty()) {
|
||||
$userData['client'] = [
|
||||
"name" => (string) $kirby->user()->client()->toPage()->title(),
|
||||
"uuid" => (string) $kirby->user()->client()->toPage()->uuid()
|
||||
if ($kirby->user()) {
|
||||
$userData = [
|
||||
"name" => (string) $kirby->user()->name()->or(null),
|
||||
"email" => (string) $kirby->user()->email(),
|
||||
"role" => (string) $kirby->user()->role(),
|
||||
"uuid" => (string) $kirby->user()->uuid()
|
||||
];
|
||||
|
||||
if ($kirby->user()->client()->exists() && $kirby->user()->client()->isNotEmpty()) {
|
||||
$userData['client'] = [
|
||||
"name" => (string) $kirby->user()->client()->toPage()->title(),
|
||||
"uuid" => (string) $kirby->user()->client()->toPage()->uuid()
|
||||
];
|
||||
if ($kirby->user()->client()->toPage()->logo()->isNotEmpty()) {
|
||||
$userData['client']["logo"] = $kirby->user()->client()->toPage()->logo()->toFile()->url();
|
||||
}
|
||||
}
|
||||
|
||||
if ($kirby->user()->projects()->exists() && $kirby->user()->projects()->isNotEmpty()) {
|
||||
$userData['projects'] = $kirby->user()->projects()->toPages()->map(function ($project) {
|
||||
return [
|
||||
"title" => (string) $project->title(),
|
||||
"uri" => (string) $project->uri(),
|
||||
"step" => (string) $project->getStepLabel(),
|
||||
];
|
||||
})->data;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return [
|
||||
'genericData' => $data,
|
||||
'userData' => $userData
|
||||
'userData' => $userData ?? null
|
||||
];
|
||||
};
|
||||
|
|
@ -108,7 +108,7 @@ class ProjectPage extends NotificationsPage {
|
|||
];
|
||||
|
||||
foreach ($track->views()->toFiles() as $view) {
|
||||
$trackData['files'][] = getFileData($view);
|
||||
$trackData['files'][] = getFileData($view, true);
|
||||
}
|
||||
|
||||
$files['dynamic'][] = $trackData;
|
||||
|
|
|
|||
|
|
@ -1,10 +1,12 @@
|
|||
<?php
|
||||
|
||||
function getFileData($file) {
|
||||
function getFileData($file, $preserveQuality = false) {
|
||||
if (!$file) return null;
|
||||
$data = [
|
||||
'modified' => $file->modified('YYYY-MM-dd'),
|
||||
'url' => $file->thumb([
|
||||
'url' => $preserveQuality ? $file->thumb([
|
||||
'format' => 'webp'
|
||||
])->url() : $file->thumb([
|
||||
'width' => 1000,
|
||||
'quality' => 80,
|
||||
'format' => 'webp'
|
||||
|
|
|
|||
6
public/site/templates/account.json.php
Normal file
6
public/site/templates/account.json.php
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<?php
|
||||
|
||||
echo json_encode([
|
||||
"page" => $genericData,
|
||||
"user" => $userData
|
||||
]);
|
||||
1
public/site/templates/account.php
Normal file
1
public/site/templates/account.php
Normal file
|
|
@ -0,0 +1 @@
|
|||
<?php snippet('generic-template') ?>
|
||||
13
public/site/templates/login.json.php
Normal file
13
public/site/templates/login.json.php
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
<?php
|
||||
|
||||
$specificData = [
|
||||
"exampleField" => $page->exampleField(),
|
||||
"exampleHardData" => 'Example hard value'
|
||||
];
|
||||
|
||||
$pageData = array_merge($genericData, $specificData);
|
||||
|
||||
echo json_encode([
|
||||
"page" => $pageData,
|
||||
"user" => $userData
|
||||
]);
|
||||
1
public/site/templates/login.php
Normal file
1
public/site/templates/login.php
Normal file
|
|
@ -0,0 +1 @@
|
|||
<?php snippet('generic-template') ?>
|
||||
|
|
@ -1,7 +1,15 @@
|
|||
<?php
|
||||
|
||||
if (!$kirby->user()) {
|
||||
return json_encode([
|
||||
'page' => $genericData,
|
||||
'user' => []
|
||||
]);
|
||||
}
|
||||
|
||||
function getProjectData($project)
|
||||
{
|
||||
{
|
||||
|
||||
$data = [
|
||||
'title' => $project->title()->value(),
|
||||
'url' => $project->url(),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue