Avancement sur Tableau de bord Admin et User
This commit is contained in:
parent
2f38ff0776
commit
ef9e63d898
|
@ -145,18 +145,24 @@ header.header img {
|
||||||
display: block;
|
display: block;
|
||||||
margin: auto;
|
margin: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/******************************************************************/
|
||||||
|
/* dashboard.twig */
|
||||||
|
/******************************************************************/
|
||||||
|
.tab-de-bord {
|
||||||
|
background-color: brown;
|
||||||
|
padding: 1rem;
|
||||||
|
min-width: 350px;
|
||||||
|
}
|
||||||
/******************************************************************/
|
/******************************************************************/
|
||||||
/* layout.twig */
|
/* layout.twig */
|
||||||
/******************************************************************/
|
/******************************************************************/
|
||||||
|
|
||||||
.mdp_oublie:hover {
|
.mdp_oublie:hover {
|
||||||
background-color: deepskyblue;
|
background-color: deepskyblue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/******************************************************************/
|
/******************************************************************/
|
||||||
/* LOADING PUBKEY */
|
/* LOADING PUBKEY */
|
||||||
/******************************************************************/
|
/******************************************************************/
|
||||||
|
|
||||||
#cle_pub {
|
#cle_pub {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
@ -178,7 +184,17 @@ body.loading .loadingPubkey {
|
||||||
/* POUR MOBILES */
|
/* POUR MOBILES */
|
||||||
/******************************************************************/
|
/******************************************************************/
|
||||||
@media only screen and (max-width:560px) {
|
@media only screen and (max-width:560px) {
|
||||||
|
/******************************************************************/
|
||||||
|
/* dashboard.twig */
|
||||||
|
/******************************************************************/
|
||||||
|
.tab-de-bord {
|
||||||
|
background-color: brown;
|
||||||
|
padding: 1rem;
|
||||||
|
min-width: 280px;
|
||||||
|
}
|
||||||
|
/******************************************************************/
|
||||||
|
/* layout.twig */
|
||||||
|
/******************************************************************/
|
||||||
.fond {
|
.fond {
|
||||||
background-color: black;
|
background-color: black;
|
||||||
background-image: url("../images/bildreich_1275.jpg");
|
background-image: url("../images/bildreich_1275.jpg");
|
||||||
|
|
|
@ -2,12 +2,12 @@
|
||||||
session_start();
|
session_start();
|
||||||
ini_set('display_errors', 0);
|
ini_set('display_errors', 0);
|
||||||
include '../../config/config.php';
|
include '../../config/config.php';
|
||||||
$antenne_slug = $_GET['antenne_slug'];
|
$antenne_slug = $_GET['antenne_slug'];
|
||||||
$nom_connecte = $_SESSION['user'];
|
$nom_connecte = $_SESSION['user'];
|
||||||
$bdd = new \PDO("mysql:host=$db_server;dbname=$db_name", $db_username, $db_password);
|
$bdd = new \PDO("mysql:host=$db_server;dbname=$db_name", $db_username, $db_password);
|
||||||
|
|
||||||
// Affichage des intitulés de colonnes
|
// Affichage des intitulés de colonnes
|
||||||
$data = '<table class="table table-bordered table-striped">
|
$data = '<table class="table table-bordered table-striped">
|
||||||
<tr style="color: black;">
|
<tr style="color: black;">
|
||||||
<th>No.</th>
|
<th>No.</th>
|
||||||
<th>Bien / service</th>
|
<th>Bien / service</th>
|
||||||
|
@ -17,88 +17,88 @@
|
||||||
<th>Quantité</th>
|
<th>Quantité</th>
|
||||||
<th>Prix en junes</th>';
|
<th>Prix en junes</th>';
|
||||||
|
|
||||||
$params["antenne_slug"] = $antenne_slug;
|
$params["antenne_slug"] = $antenne_slug;
|
||||||
$requete = "SELECT products.*, users.username, users.pubkey
|
$requete = "SELECT products.*, users.username, users.pubkey
|
||||||
FROM products
|
FROM products
|
||||||
LEFT JOIN antennes
|
LEFT JOIN antennes
|
||||||
ON antennes.id = products.antenne_id
|
ON antennes.id = products.antenne_id
|
||||||
LEFT JOIN users
|
LEFT JOIN users
|
||||||
ON users.id = products.user_id
|
ON users.id = products.user_id
|
||||||
WHERE antennes.slug = :antenne_slug";
|
WHERE antennes.slug = :antenne_slug";
|
||||||
$stmt = $bdd->prepare($requete);
|
$stmt = $bdd->prepare($requete);
|
||||||
$stmt2 = $bdd->prepare($requete);
|
$stmt2 = $bdd->prepare($requete);
|
||||||
$stmt->execute($params);
|
$stmt->execute($params);
|
||||||
$stmt2->execute($params);
|
$stmt2->execute($params);
|
||||||
$count = $stmt->rowCount();
|
$count = $stmt->rowCount();
|
||||||
$affich_actions = false;
|
$affich_actions = false;
|
||||||
while ($row2 = $stmt2->fetch(PDO::FETCH_ASSOC)) {
|
while ($row2 = $stmt2->fetch(PDO::FETCH_ASSOC)) {
|
||||||
if ($row2['username'] == $nom_connecte) {
|
if ($row2['username'] == $nom_connecte) {
|
||||||
$affich_actions = true;
|
$affich_actions = true;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if ($affich_actions) {
|
}
|
||||||
$data .= '<th colspan="2" style="text-align: center;">Actions</th>';
|
if ($affich_actions) {
|
||||||
$data .= '</tr>';
|
$data .= '<th colspan="2" style="text-align: center;">Actions</th>';
|
||||||
} else {
|
$data .= '</tr>';
|
||||||
$data .= '</tr>';
|
} else {
|
||||||
}
|
$data .= '</tr>';
|
||||||
if ($count > 0)
|
}
|
||||||
{
|
if ($count > 0)
|
||||||
$number = 1;
|
{
|
||||||
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
|
$number = 1;
|
||||||
|
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||||
|
|
||||||
$data .= "<tr style='background:lightblue;color:black;'>
|
$data .= "<tr style='background:lightblue;color:black;'>
|
||||||
<td>$number</td>";
|
<td>$number</td>";
|
||||||
$prix = $row['prix'];
|
$prix = $row['prix'];
|
||||||
$vendeur = $row['username'];
|
$vendeur = $row['username'];
|
||||||
$produit = $row['name'];
|
$produit = $row['name'];
|
||||||
$pubkey = $row['pubkey'];
|
$pubkey = $row['pubkey'];
|
||||||
$pubkeyShort = substr($pubkey, 0, 8);
|
$pubkeyShort = substr($pubkey, 0, 8);
|
||||||
$vendeur_format = "<a target=\"_blank\" href=\"https://g1.duniter.fr/#/app/wot/$pubkey/\">$vendeur</a>";
|
$vendeur_format = "<a target=\"_blank\" href=\"https://g1.duniter.fr/#/app/wot/$pubkey/\">$vendeur</a>";
|
||||||
$cle_pub_format = "<a target=\"_blank\" href=\"https://g1.duniter.fr/api/#/v1/payment/$pubkey?amount=$prix&name=$vendeur&comment=[Achat GMarche] : $produit&preferred_node=https://g1.librelois.fr&redirect_url=https://gmarche.monnaie-libre.fr\" title=$pubkey> $pubkeyShort... </a>";
|
$cle_pub_format = "<a target=\"_blank\" href=\"https://g1.duniter.fr/api/#/v1/payment/$pubkey?amount=$prix&name=$vendeur&comment=[Achat GMarche] : $produit&preferred_node=https://g1.librelois.fr&redirect_url=https://gmarche.monnaie-libre.fr\" title=$pubkey> $pubkeyShort... </a>";
|
||||||
$data .= '<td>'.$produit.'</td>';
|
$data .= '<td>'.$produit.'</td>';
|
||||||
$data .= '<td><img src="/uploads/products/'.$antenne_slug.'/'.$row['image'].'" width="100" height="100" /></td>';
|
$data .= '<td><img src="/uploads/products/'.$antenne_slug.'/'.$row['image'].'" width="100" height="100" /></td>';
|
||||||
$data .= '<td>'.$vendeur_format.'</td>';
|
$data .= '<td>'.$vendeur_format.'</td>';
|
||||||
$data .= '<td>'.$cle_pub_format.'</td>';
|
$data .= '<td>'.$cle_pub_format.'</td>';
|
||||||
$data .= '<td>'.$row['quantite'].'</td>';
|
$data .= '<td>'.$row['quantite'].'</td>';
|
||||||
$data .= '<td>'.$prix.'</td>';
|
$data .= '<td>'.$prix.'</td>';
|
||||||
if ($row['username'] == $nom_connecte ) {
|
if ($row['username'] == $nom_connecte ) {
|
||||||
$data .= '<td>';
|
$data .= '<td>';
|
||||||
$data .= '<button onclick="GetProduitsDetails(\'';
|
$data .= '<button onclick="GetProduitsDetails(\'';
|
||||||
$data .= $row['id'];
|
$data .= $row['id'];
|
||||||
$data .= "'";
|
$data .= "'";
|
||||||
$data .= ',';
|
$data .= ',';
|
||||||
$data .= "'$antenne_slug'";
|
$data .= "'$antenne_slug'";
|
||||||
$data .= ",'";
|
$data .= ",'";
|
||||||
$data .= $row['image'];
|
$data .= $row['image'];
|
||||||
$data .= "'";
|
$data .= "'";
|
||||||
$data .= ')" class=\'btn btn-primary\'';
|
$data .= ')" class=\'btn btn-primary\'';
|
||||||
$data .= '>Modifier';
|
$data .= '>Modifier';
|
||||||
$data .= '</button>';
|
$data .= '</button>';
|
||||||
$data .= '</td><td>';
|
$data .= '</td><td>';
|
||||||
$data .= '<button onclick="DeleteProduits(\'';
|
$data .= '<button onclick="DeleteProduits(\'';
|
||||||
$data .= $row['id'];
|
$data .= $row['id'];
|
||||||
$data .= "'";
|
$data .= "'";
|
||||||
$data .= ',';
|
$data .= ',';
|
||||||
$data .= "'$antenne_slug'";
|
$data .= "'$antenne_slug'";
|
||||||
$data .= ",'";
|
$data .= ",'";
|
||||||
$data .= $row['image'];
|
$data .= $row['image'];
|
||||||
$data .= "'";
|
$data .= "'";
|
||||||
$data .= ')" class=\'btn btn-danger\'';
|
$data .= ')" class=\'btn btn-danger\'';
|
||||||
$data .= '>Supprimer</button>';
|
$data .= '>Supprimer</button>';
|
||||||
$data .= '</td>';
|
$data .= '</td>';
|
||||||
} else {
|
} else {
|
||||||
if ($affich_actions) {
|
if ($affich_actions) {
|
||||||
$data .= '<td></td><td></td>';
|
$data .= '<td></td><td></td>';
|
||||||
}
|
|
||||||
}
|
}
|
||||||
$data .= '</tr>';
|
|
||||||
$number++;
|
|
||||||
}
|
}
|
||||||
} else {
|
$data .= '</tr>';
|
||||||
// Il n'y a pas encore de biens/services saisis
|
$number++;
|
||||||
$data .= "<tr style='background-color:lightblue;text-align:left;color:black;'><td colspan='10'>Aucun enregistrement saisi</td></tr>";
|
|
||||||
}
|
}
|
||||||
$data .= '</table>';
|
} else {
|
||||||
echo $data;
|
// Il n'y a pas encore de biens/services saisis
|
||||||
|
$data .= "<tr style='background-color:lightblue;text-align:left;color:black;'><td colspan='10'>Aucun enregistrement saisi</td></tr>";
|
||||||
|
}
|
||||||
|
$data .= '</table>';
|
||||||
|
echo $data;
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -2,8 +2,6 @@
|
||||||
|
|
||||||
namespace App\Admin;
|
namespace App\Admin;
|
||||||
|
|
||||||
use App\Admin\Table\UserTable;
|
|
||||||
use Framework\Auth;
|
|
||||||
use Framework\Module;
|
use Framework\Module;
|
||||||
use Framework\Renderer\RendererInterface;
|
use Framework\Renderer\RendererInterface;
|
||||||
use Framework\Renderer\TwigRenderer;
|
use Framework\Renderer\TwigRenderer;
|
||||||
|
@ -11,43 +9,19 @@ use Framework\Router;
|
||||||
|
|
||||||
class AdminModule extends Module
|
class AdminModule extends Module
|
||||||
{
|
{
|
||||||
|
|
||||||
const DEFINITIONS = __DIR__ . '/config.php';
|
const DEFINITIONS = __DIR__ . '/config.php';
|
||||||
/**
|
|
||||||
* @var Auth
|
|
||||||
*/
|
|
||||||
private $auth;
|
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
RendererInterface $renderer,
|
RendererInterface $renderer,
|
||||||
Router $router,
|
Router $router,
|
||||||
AdminTwigExtension $adminTwigExtension,
|
AdminTwigExtension $adminTwigExtension,
|
||||||
UserTable $userTable,
|
|
||||||
Auth $auth,
|
|
||||||
string $prefix
|
string $prefix
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
$this->userTable = $userTable;
|
$router->get('/dashboard', DashboardAction::class, 'dashboard');
|
||||||
$this->auth = $auth;
|
$router->get('/dashboard/{user:[a-zA-Z\-0-9]+}', DashboardUserAction::class, 'dashboard.user');
|
||||||
$renderer->addPath('admin', __DIR__ . '/views');
|
|
||||||
$name_user = $this->auth->getUser()->username;
|
|
||||||
//$role = $user->getRoles();
|
|
||||||
$role = $_SESSION['role'];
|
|
||||||
$page = $params['p'] ?? 1; // Si la page n'est pas définie, on l'initialise à 1
|
|
||||||
//$liste_users = $this->userTable->findAll()->paginate(25, $page);
|
|
||||||
$liste_adminGeneral = $this->userTable->findAdminUsers('1');
|
|
||||||
$liste_adminAntenne = $this->userTable->findAdminUsers('2');
|
|
||||||
$liste_users = $this->userTable->findAdminUsers('3');
|
|
||||||
|
|
||||||
$router->get($prefix, DashboardAction::class, 'admin');
|
|
||||||
$router->post($prefix, DashboardAction::class);
|
|
||||||
if ($renderer instanceof TwigRenderer) {
|
if ($renderer instanceof TwigRenderer) {
|
||||||
$renderer->getTwig()->addExtension($adminTwigExtension);
|
$renderer->getTwig()->addExtension($adminTwigExtension);
|
||||||
$renderer->getTwig()->addGlobal('role',$role);
|
|
||||||
$renderer->getTwig()->addGlobal('name_user',$name_user);
|
|
||||||
$renderer->getTwig()->addGlobal('liste_adminGeneral',$liste_adminGeneral);
|
|
||||||
$renderer->getTwig()->addGlobal('liste_adminAntenne',$liste_adminAntenne);
|
|
||||||
$renderer->getTwig()->addGlobal('liste_users',$liste_users);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
namespace App\Admin;
|
namespace App\Admin;
|
||||||
|
|
||||||
|
use App\Admin\Table\UserTable;
|
||||||
|
use App\Gmarche\Table\AntenneTable;
|
||||||
use Framework\Renderer\RendererInterface;
|
use Framework\Renderer\RendererInterface;
|
||||||
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
|
|
||||||
class DashboardAction
|
class DashboardAction
|
||||||
{
|
{
|
||||||
|
@ -10,22 +13,54 @@ class DashboardAction
|
||||||
* @var RendererInterface
|
* @var RendererInterface
|
||||||
*/
|
*/
|
||||||
private $renderer;
|
private $renderer;
|
||||||
|
/**
|
||||||
|
* @var AntenneTable
|
||||||
|
*/
|
||||||
|
private $antenneTable;
|
||||||
|
|
||||||
//private $widgets;
|
|
||||||
|
|
||||||
public function __construct(RendererInterface $renderer)
|
/**
|
||||||
|
* @var UserTable
|
||||||
|
*/
|
||||||
|
private $userTable;
|
||||||
|
|
||||||
|
public function __construct(
|
||||||
|
RendererInterface $renderer,
|
||||||
|
AntenneTable $antenneTable,
|
||||||
|
UserTable $userTable)
|
||||||
{
|
{
|
||||||
$this->renderer = $renderer;
|
$this->renderer = $renderer;
|
||||||
// $this->widgets = $widgets;
|
$this->antenneTable = $antenneTable;
|
||||||
|
$this->userTable = $userTable;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function __invoke()
|
/**
|
||||||
|
* @param ServerRequestInterface $request
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function __invoke(ServerRequestInterface $request)
|
||||||
{
|
{
|
||||||
if ($request->getMethod() === 'GET') {
|
if ($request->getMethod() === 'GET') {
|
||||||
/*$widgets = array_reduce($this->widgets, function (string $html, AdminWidgetInterface $widget) {
|
|
||||||
return $html . $widget->render();
|
$this->renderer->addPath('admin', __DIR__ . '/views');
|
||||||
}, '');*/
|
$page = $params['p'] ?? 1; // Si la page n'est pas définie, on l'initialise à 1
|
||||||
return $this->renderer->render('@admin/dashboard');
|
$liste_adminGeneral = $this->userTable->findAdminUsers('1');
|
||||||
|
$liste_adminAntenne = $this->userTable->findAdminUsers('2');
|
||||||
|
$liste_users_suivi = $this->userTable->findUsers('3');
|
||||||
|
$listeAntennes = $this->antenneTable->findAllAntennes();
|
||||||
|
if (!isset($_SESSION)) {
|
||||||
|
session_start();
|
||||||
|
}
|
||||||
|
if (isset($_SESSION['user'])) {
|
||||||
|
$nom_user = $_SESSION['user'];
|
||||||
|
$role = $_SESSION['role'];
|
||||||
|
} else {
|
||||||
|
$nom_user = '';
|
||||||
|
$role = '3';
|
||||||
|
}
|
||||||
|
return $this->renderer->render('@admin/dashboard',
|
||||||
|
compact('nom_user','role', 'liste_adminGeneral', 'liste_users_suivi',
|
||||||
|
'liste_adminAntenne', 'listeAntennes'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,76 @@
|
||||||
|
<?php
|
||||||
|
namespace App\Admin;
|
||||||
|
|
||||||
|
use App\Auth\UserTable;
|
||||||
|
use App\Admin\Table\UserTable as UserTableAdmin;
|
||||||
|
use App\Gmarche\Table\AntenneTable;
|
||||||
|
use Framework\Auth;
|
||||||
|
use Framework\Renderer\RendererInterface;
|
||||||
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
|
|
||||||
|
class DashboardUserAction
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var RendererInterface
|
||||||
|
*/
|
||||||
|
private $renderer;
|
||||||
|
/**
|
||||||
|
* @var Auth
|
||||||
|
*/
|
||||||
|
private $auth;
|
||||||
|
/**
|
||||||
|
* @var AntenneTable
|
||||||
|
*/
|
||||||
|
private $antenneTable;
|
||||||
|
/**
|
||||||
|
* @var UserTable
|
||||||
|
*/
|
||||||
|
private $userTable;
|
||||||
|
|
||||||
|
public function __construct(
|
||||||
|
RendererInterface $renderer,
|
||||||
|
Auth $auth,
|
||||||
|
AntenneTable $antenneTable,
|
||||||
|
UserTable $userTable,
|
||||||
|
UserTableAdmin $userTableAdmin)
|
||||||
|
{
|
||||||
|
$this->renderer = $renderer;
|
||||||
|
$this->auth = $auth;
|
||||||
|
$this->antenneTable = $antenneTable;
|
||||||
|
$this->userTable = $userTable;
|
||||||
|
$this->userTableAdmin = $userTableAdmin;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param ServerRequestInterface $request
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function __invoke(ServerRequestInterface $request)
|
||||||
|
{
|
||||||
|
if ($request->getMethod() === 'GET') {
|
||||||
|
$this->renderer->addPath('admin', __DIR__ . '/views');
|
||||||
|
$liste_users_suivi = $this->userTableAdmin->findUsers('3');
|
||||||
|
|
||||||
|
$username = $request->getAttribute('user');
|
||||||
|
|
||||||
|
$profil_user = $this->userTable->findBy('username', $username);
|
||||||
|
// var_dump($profil_user);
|
||||||
|
// die();
|
||||||
|
$listeAntennes = $this->antenneTable->findAllAntennes();
|
||||||
|
if (!isset($_SESSION)) {
|
||||||
|
session_start();
|
||||||
|
}
|
||||||
|
if (isset($_SESSION['user'])) {
|
||||||
|
$nom_user = $_SESSION['user'];
|
||||||
|
$role = $_SESSION['role'];
|
||||||
|
} else {
|
||||||
|
$nom_user = '';
|
||||||
|
$role = '3';
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->renderer->render('@admin/dashboard_user',
|
||||||
|
compact('nom_user','role','username','profil_user','liste_users_suivi','listeAntennes'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -29,4 +29,5 @@ class User
|
||||||
|
|
||||||
public $avatar;
|
public $avatar;
|
||||||
|
|
||||||
|
public $suiviantenne;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
namespace App\Admin\Table;
|
namespace App\Admin\Table;
|
||||||
|
|
||||||
use App\Admin\Entity\User;
|
use App\Admin\Entity\User;
|
||||||
|
use App\Gmarche\Table\AntenneTable;
|
||||||
|
use App\Gmarche\Table\RegionTable;
|
||||||
use Framework\Database\Query;
|
use Framework\Database\Query;
|
||||||
use Framework\Database\Table;
|
use Framework\Database\Table;
|
||||||
|
|
||||||
|
@ -12,19 +14,50 @@ class UserTable extends Table
|
||||||
|
|
||||||
protected $table = 'users';
|
protected $table = 'users';
|
||||||
|
|
||||||
|
public function findList(): array
|
||||||
|
{
|
||||||
|
$results = $this->pdo
|
||||||
|
->query("SELECT id, name FROM {$this->table}")
|
||||||
|
->fetchAll(\PDO::FETCH_NUM);
|
||||||
|
$list = [];
|
||||||
|
foreach ($results as $result) {
|
||||||
|
$list[$result[0]] = $result[1];
|
||||||
|
}
|
||||||
|
return $list;
|
||||||
|
}
|
||||||
|
public function findAntennebyId(int $id_antenne): Query
|
||||||
|
{
|
||||||
|
$antenne = new AntenneTable($this->pdo);
|
||||||
|
return $this->makeQuery()
|
||||||
|
->select('a.name as nameAntenne')
|
||||||
|
->where("a.id = $id_antenne");
|
||||||
|
}
|
||||||
|
public function findUsers($role): Query
|
||||||
|
{
|
||||||
|
return $this->makeQuery()
|
||||||
|
->select('u.*')
|
||||||
|
->where("u.role = '".$role."'")
|
||||||
|
->order('u.username ASC');
|
||||||
|
}
|
||||||
|
/*public function findUsersSuivi($role): Query
|
||||||
|
{
|
||||||
|
$antenne = new AntenneTable($this->pdo);
|
||||||
|
return $this->makeQuery()
|
||||||
|
->join($antenne->getTable() . ' as a', 'substring(u.suiviantenne,1,1) = a.id')
|
||||||
|
->select('u.*,a.name as nameAntenne')
|
||||||
|
->where("u.role = '".$role."'")
|
||||||
|
->order('u.username, nameAntenne ASC');
|
||||||
|
}*/
|
||||||
public function findAdminUsers($role): Query
|
public function findAdminUsers($role): Query
|
||||||
{
|
{
|
||||||
//$region = new RegionTable($this->pdo);
|
|
||||||
return $this->makeQuery()
|
return $this->makeQuery()
|
||||||
->select('u.*')
|
->select('u.*')
|
||||||
->where("u.role = $role")
|
->where("u.role = $role")
|
||||||
->order('u.username ASC');
|
->order('u.username ASC');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function findRole($username): Query
|
public function findRole($username): Query
|
||||||
{
|
{
|
||||||
//$region = new RegionTable($this->pdo);
|
return $this->makeQuery()
|
||||||
return $this->makeQuery()
|
|
||||||
->select('u.role')
|
->select('u.role')
|
||||||
->where("u.username = $username");
|
->where("u.username = $username");
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,59 +1,105 @@
|
||||||
{% extends '@admin/layout.twig' %}
|
{% extends 'layout.twig' %}
|
||||||
|
|
||||||
|
{% block title "Ğ1-Marché - Tableau de bord" %}
|
||||||
|
|
||||||
{% block body %}
|
{% block body %}
|
||||||
<h3 style="display:inline-block;">Tableau de bord - </h3>
|
<div class="container" style="color:floralwhite;background-color: #333333;padding: 1rem;">
|
||||||
<h4 style="display:inline-block;">
|
<div class="container tab-de-bord">
|
||||||
{% if role == '0' %} Super Admin{% endif %}
|
<h3 style="display:inline-block;">Tableau de bord - </h3>
|
||||||
{% if role == '1' %} Admin général{% endif %}
|
<h4 style="display:inline-block;">
|
||||||
{% if role == '2' %} Admin Antenne{% endif %}
|
{% if role == '0' %} Super Admin{% endif %}
|
||||||
</h4>
|
{% if role == '1' %} Admin général{% endif %}
|
||||||
</h3>
|
{% if role == '2' %} Admin Antenne{% endif %}
|
||||||
<p></p>
|
</h4>
|
||||||
{% if role == '0' %}
|
</h3>
|
||||||
<h4>Liste des admins généraux</h4>
|
</div>
|
||||||
<ul class="list-group list-group-flush">
|
<p></p>
|
||||||
{% for admin_gen in liste_adminGeneral %}
|
{% if role == '0' %}
|
||||||
<a style="color:black;" href="" title="{{ admin_gen.username }}">
|
<h4>Liste des admins généraux</h4>
|
||||||
<li class="liste_antennes list-group-item" style="padding: .2rem 1.25rem;">
|
<ul class="list-group list-group-flush">
|
||||||
{{ admin_gen.username }}
|
{% for admin_gen in liste_adminGeneral %}
|
||||||
</li>
|
<a style="color:black;" href="" title="{{ admin_gen.username }}">
|
||||||
</a>
|
<li class="liste_antennes list-group-item" style="padding: .2rem 1.25rem;">
|
||||||
{% endfor %}
|
{{ admin_gen.username }}
|
||||||
</ul>
|
</li>
|
||||||
{% endif %}
|
</a>
|
||||||
{% if (role == '0' or role == '1') %}
|
{% endfor %}
|
||||||
<h4>Liste des admins Antenne</h4>
|
</ul>
|
||||||
<ul class="list-group list-group-flush">
|
{% endif %}
|
||||||
{% for admin_ant in liste_adminAntenne %}
|
<p></p>
|
||||||
<a style="color:black;" href="" title="{{ admin_ant.username }}">
|
{% if (role == '0' or role == '1') %}
|
||||||
<li class="liste_antennes list-group-item" style="padding: .2rem 1.25rem;">
|
<h4>Liste des admins Antenne</h4>
|
||||||
{{ admin_ant.username }}
|
<ul class="list-group list-group-flush">
|
||||||
</li>
|
{% for admin_ant in liste_adminAntenne %}
|
||||||
</a>
|
<a style="color:black;" href="" title="{{ admin_ant.username }}">
|
||||||
{% endfor %}
|
<li class="liste_antennes list-group-item" style="padding: .2rem 1.25rem;">
|
||||||
</ul>
|
{{ admin_ant.username }}
|
||||||
{% endif %}
|
</li>
|
||||||
{% if (role == '0' or role == '1' or role == '2') %}
|
</a>
|
||||||
<h4>Liste des utilisateurs</h4>
|
{% endfor %}
|
||||||
<ul class="list-group list-group-flush">
|
</ul>
|
||||||
{% for user in liste_users %}
|
{% endif %}
|
||||||
<a style="color:black;" href="" title="{{ user.username }}">
|
<p></p>
|
||||||
<li class="liste_antennes list-group-item" style="padding: .2rem 1.25rem;">
|
{% if (role == '0' or role == '1' or role == '2') %}
|
||||||
{{ user.username }}
|
<h4>Liste des régions/antennes</h4>
|
||||||
</li>
|
<ul class="list-group list-group-flush">
|
||||||
</a>
|
{% set antenne = '' %}
|
||||||
{% endfor %}
|
{% set region = '' %}
|
||||||
</ul>
|
{% for item in listeAntennes %}
|
||||||
{% endif %}
|
{% if (item.regionName != region) %}
|
||||||
<p></p>
|
<li class="liste_antennes list-group-item" style="color:black;
|
||||||
{% if (role == '0' or role == '1') %}
|
background-color:lightgoldenrodyellow;padding: .2rem 1.25rem;">
|
||||||
<h4>Gestion d'une antenne</h4>
|
{{ item.regionName }}
|
||||||
{% endif %}
|
</li>
|
||||||
<p></p>
|
<a style="color:black;" href="" title="{{ item.regionName }}">
|
||||||
{% if (role == '0' or role == '1' or role == '2') %}
|
<li class="liste_antennes list-group-item" style="background-color:#8fbc8f;padding: .2rem 1.25rem;">
|
||||||
<h4>Gestion d'un G-Marché</h4>
|
► {{ item.antenneName }}
|
||||||
{% endif %}
|
</li>
|
||||||
<div class="row">
|
</a>
|
||||||
{{ widgets | raw }}
|
{% else %}
|
||||||
|
<a style="color:black;" href="" title="{{ item.regionName }}">
|
||||||
|
<li class="liste_antennes list-group-item" style="background-color:#8fbc8f;padding: .2rem 1.25rem;">
|
||||||
|
► {{ item.antenneName }}
|
||||||
|
</li>
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
{% set antenne = item.antenneName %}
|
||||||
|
{% set region = item.regionName %}
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
{% endif %}
|
||||||
|
<p></p>
|
||||||
|
{% if (role == '0' or role == '1' or role == '2') %}
|
||||||
|
<h4>Liste des utilisateurs</h4>
|
||||||
|
|
||||||
|
<ul class="list-group list-group-flush">
|
||||||
|
{% for item2 in liste_users_suivi %}
|
||||||
|
<a style="color:black;" href="{{ path('dashboard.user',{user:item2.username}) }}" title="{{ item2.username }}">
|
||||||
|
<li class="liste_antennes list-group-item" style="padding: .2rem 1.25rem;">
|
||||||
|
{{ item2.username }}
|
||||||
|
{% set antenne_suivie = item2.suiviantenne|split('|') %}
|
||||||
|
{% for antenn in antenne_suivie %}
|
||||||
|
{% for item in listeAntennes %}
|
||||||
|
{% if (item.id == antenn) %}
|
||||||
|
- {{ item.antenneName }}
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
{% endfor %}
|
||||||
|
</li>
|
||||||
|
</a>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
{% endif %}
|
||||||
|
<p></p>
|
||||||
|
{% if (role == '0' or role == '1') %}
|
||||||
|
<h4>Gestion d'une antenne</h4>
|
||||||
|
{% endif %}
|
||||||
|
<p></p>
|
||||||
|
{% if (role == '0' or role == '1' or role == '2') %}
|
||||||
|
<h4>Gestion d'un G-Marché</h4>
|
||||||
|
{% endif %}
|
||||||
|
<div class="row">
|
||||||
|
{{ widgets | raw }}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
|
@ -0,0 +1,63 @@
|
||||||
|
{% extends 'layout.twig' %}
|
||||||
|
|
||||||
|
{% block title "Ğ1-Marché - Tableau de bord User" %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
<div class="container" style="color:floralwhite;background-color: #333333;padding: 1rem;">
|
||||||
|
<div class="container tab-de-bord">
|
||||||
|
<h3 style="display:inline-block;">Tableau de bord User - {{ username }}</h3>
|
||||||
|
</div>
|
||||||
|
<ul class="list-group list-group-flush">
|
||||||
|
<div class="container" style="color:black;background-color: lightgray;opacity: 0.9;margin: 1rem;padding:1rem;">
|
||||||
|
<form action="" method="post">
|
||||||
|
<button class="btn btn-primary">Désactiver l'utilisateur</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</ul>
|
||||||
|
<p></p>
|
||||||
|
<h4>Profil</h4>
|
||||||
|
|
||||||
|
<ul class="list-group list-group-flush">
|
||||||
|
|
||||||
|
<div class="container" style="color:black;background-color: lightgray;opacity: 0.9;margin: 1rem;padding:1rem;">
|
||||||
|
<form action="" method="post">
|
||||||
|
<!-- csrf_input() -->
|
||||||
|
{{ field('firstname', profil_user.firstname, 'Prénom') }}
|
||||||
|
{{ field('lastname', profil_user.lastname, 'Nom') }}
|
||||||
|
Adresse mail {{ profil_user.email }}<p></p>
|
||||||
|
Clé publique {{ profil_user.pubkey }}
|
||||||
|
<p></p>
|
||||||
|
<button class="btn btn-primary">Modifier les informations</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
<ul class="list-group list-group-flush">
|
||||||
|
<div class="container" style="color:black;background-color: lightgray;opacity: 0.9;margin: 1rem;padding:1rem;">
|
||||||
|
<form action="" method="post">
|
||||||
|
<button class="btn btn-primary">Renvoyer un mot de passe</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</ul>
|
||||||
|
<p></p>
|
||||||
|
<h4>Liste des antennes suivies</h4>
|
||||||
|
|
||||||
|
<ul class="list-group list-group-flush">
|
||||||
|
<li class="liste_antennes list-group-item" style="color:black;padding: .2rem 1.25rem;">
|
||||||
|
{% set antenne_suivie = profil_user.suiviantenne|split('|') %}
|
||||||
|
{% for antenne in antenne_suivie %}
|
||||||
|
{% for item in listeAntennes %}
|
||||||
|
{% if (item.id == antenne) %}
|
||||||
|
<li class="liste_antennes list-group-item" style="padding: .2rem 1.25rem;">
|
||||||
|
<a style="color:black;" href="" title="{{ item.antenneName }}">
|
||||||
|
{{ item.antenneName }}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
{% endfor %}
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p></p>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
|
@ -26,13 +26,17 @@
|
||||||
{% if name_user != '' %}
|
{% if name_user != '' %}
|
||||||
<form method="post" style="margin-top:5px;" action="{{ path('account.profil') }}">
|
<form method="post" style="margin-top:5px;" action="{{ path('account.profil') }}">
|
||||||
<span><img src="\avatar_user.png" width="22" height="22" /></span>
|
<span><img src="\avatar_user.png" width="22" height="22" /></span>
|
||||||
<button style="color:white;font-size: 14px;" class="btn-primary">{{ name_user }}</button>
|
<button style="color:white;font-size: 14px;" class="btn-primary">user = {{ name_user }}</button>
|
||||||
|
<button style="color:white;font-size: 14px;" class="btn-primary">user2 = {{ name_user2 }}</button>
|
||||||
</form>
|
</form>
|
||||||
<form method="post" action="{{ path('auth.logout') }}">
|
<form method="post" action="{{ path('auth.logout') }}">
|
||||||
<!-- csrf_input() }}-->
|
<!-- csrf_input() }}-->
|
||||||
<button class="btn btn-danger" style="margin-left: 7px; font-size:14px;">Se déconnecter</button>
|
<button class="btn btn-danger" style="margin-left: 7px; font-size:14px;">Se déconnecter</button>
|
||||||
</form>
|
</form>
|
||||||
{% else %}
|
{% else %}
|
||||||
|
<span style="color:white;">
|
||||||
|
name_user = {{ name_user }}
|
||||||
|
name_user2 = {{ name_user2 }}</span>
|
||||||
<div class="nav-item" id="bouton-connexion">
|
<div class="nav-item" id="bouton-connexion">
|
||||||
<button style="color:white; font-size: 14px;" class="btn btn-primary" data-toggle="modal" data-target="#connexion_modal">Se connecter</button>
|
<button style="color:white; font-size: 14px;" class="btn btn-primary" data-toggle="modal" data-target="#connexion_modal">Se connecter</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -52,7 +52,7 @@ class ForbiddenMiddleware implements MiddlewareInterface
|
||||||
public function redirectLogin(ServerRequestInterface $request): ResponseInterface
|
public function redirectLogin(ServerRequestInterface $request): ResponseInterface
|
||||||
{
|
{
|
||||||
$this->session->set('auth.redirect', $request->getUri()->getPath());
|
$this->session->set('auth.redirect', $request->getUri()->getPath());
|
||||||
(new FlashService($this->session))->error('Vous devez posséder un compte pour accéder à cette page');
|
//(new FlashService($this->session))->error('Vous devez posséder un compte pour accéder à cette page');
|
||||||
return new RedirectResponse($this->loginPath);
|
return new RedirectResponse($this->loginPath);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,10 +31,12 @@ class ContactAction
|
||||||
}
|
}
|
||||||
if (isset($_SESSION['user'])) {
|
if (isset($_SESSION['user'])) {
|
||||||
$nom_user = $_SESSION['user'];
|
$nom_user = $_SESSION['user'];
|
||||||
|
$role = $_SESSION['role'];
|
||||||
} else {
|
} else {
|
||||||
$nom_user = '';
|
$nom_user = '';
|
||||||
|
$role = '3';
|
||||||
}
|
}
|
||||||
return $this->renderer->render('@contact/contact',compact('nom_user'));
|
return $this->renderer->render('@contact/contact',compact('nom_user','role'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,14 +3,6 @@
|
||||||
{% block title "Ğ1-Marché - Contact" %}
|
{% block title "Ğ1-Marché - Contact" %}
|
||||||
{% block body %}
|
{% block body %}
|
||||||
<style>
|
<style>
|
||||||
/*body .fond {
|
|
||||||
background-image: url("../../images/background_contacts.jpg");
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
background-attachment:fixed;
|
|
||||||
background-position: center;
|
|
||||||
background-size: 100% auto;
|
|
||||||
font-family: Bree serif,"Helvetica Neue", Helvetica, Arial, sans-serif;
|
|
||||||
}*/
|
|
||||||
.main {
|
.main {
|
||||||
width: 900px;
|
width: 900px;
|
||||||
font-family: "Bree Serif", Arial;
|
font-family: "Bree Serif", Arial;
|
||||||
|
@ -91,6 +83,7 @@
|
||||||
</script>
|
</script>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<div class="main" style="background:none;">
|
<div class="main" style="background:none;">
|
||||||
|
nom_user = {{ nom_user }}
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<img class="img_header" src="/images/logo_contacts.jpg" style="width: 294px;height: 294px;" alt="Ğ1-Marché" title="Logo Contact" />
|
<img class="img_header" src="/images/logo_contacts.jpg" style="width: 294px;height: 294px;" alt="Ğ1-Marché" title="Logo Contact" />
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -12,7 +12,6 @@ class AntenneTable extends Table
|
||||||
|
|
||||||
protected $table = 'antennes';
|
protected $table = 'antennes';
|
||||||
|
|
||||||
|
|
||||||
public function findAllbyRegion(int $region_id): Query
|
public function findAllbyRegion(int $region_id): Query
|
||||||
{
|
{
|
||||||
$region = new RegionTable($this->pdo);
|
$region = new RegionTable($this->pdo);
|
||||||
|
@ -22,22 +21,12 @@ class AntenneTable extends Table
|
||||||
->where("a.region_id = $region_id")
|
->where("a.region_id = $region_id")
|
||||||
->order('a.name ASC');
|
->order('a.name ASC');
|
||||||
}
|
}
|
||||||
/* public function getAntenne(string $antenne_slug): Query
|
public function findAllAntennes(): Query
|
||||||
{
|
{
|
||||||
//$antenne = new AntenneTable($this->pdo);
|
$region = new RegionTable($this->pdo);
|
||||||
return $this->makeQuery()
|
return $this->makeQuery()
|
||||||
->select('a.*')
|
->join($region->getTable() . ' as r', 'a.region_id = r.id')
|
||||||
->where("a.slug = $antenne_slug")
|
->select('a.id, r.name as regionName, a.name as antenneName')
|
||||||
->order('a.name ASC');
|
->order('r.name, a.name ASC');
|
||||||
}
|
}
|
||||||
public function findPublic(): Query
|
|
||||||
{
|
|
||||||
return $this->findAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public function findWithAntenne(int $antenne_slug): Antenne
|
|
||||||
{
|
|
||||||
return $this->findPublic()->where("a.slug = $antenne_slug")->fetch();
|
|
||||||
}*/
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,13 +46,14 @@
|
||||||
</li>
|
</li>
|
||||||
{% if role=='0' or role=='1' or role=='2' %}
|
{% if role=='0' or role=='1' or role=='2' %}
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link {% if admin %} active{% endif %}" style="font-size:14px;"
|
<a class="nav-link {% if explodeUrl()[1]=='dashboard' %} active{% endif %}" style="font-size:14px;"
|
||||||
href="{{ path('admin') }}">Administration</a>
|
href="{{ path('dashboard') }}">Administration</a>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link {% if explodeUrl()[1]=='contact' %} active{% endif %}" style="font-size:14px;"
|
<a class="nav-link {% if explodeUrl()[1]=='contact' %} active{% endif %}" style="font-size:14px;"
|
||||||
href="{{ path('contact') }}">Qui sommes-nous ?</a>
|
href="{{ path('contact') }}">Qui sommes-nous ?
|
||||||
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="navbar-nav">
|
<div class="navbar-nav">
|
||||||
|
|
Loading…
Reference in New Issue