145 lines
5 KiB
PHP
145 lines
5 KiB
PHP
|
<?php
|
||
|
|
||
|
// src/Controller/DataImport.php
|
||
|
// Grab data from transfer app
|
||
|
|
||
|
namespace App\Controller\Routes\Back;
|
||
|
|
||
|
use Symfony\Component\HttpFoundation\Response;
|
||
|
use Symfony\Component\HttpFoundation\Request;
|
||
|
use Symfony\Component\Routing\Annotation\Route;
|
||
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||
|
use Doctrine\Persistence\ManagerRegistry;
|
||
|
//use App\Utils\PageRender;
|
||
|
//use App\Utils\StringTools;
|
||
|
use App\Service\Auth;
|
||
|
use App\Service\HandleMembers;
|
||
|
|
||
|
class Members extends AbstractController
|
||
|
{
|
||
|
/**
|
||
|
* @Route("/dashboard/members", name="dash-members")
|
||
|
*/
|
||
|
public function showMembers(
|
||
|
Request $request,
|
||
|
Auth $auth
|
||
|
): Response {
|
||
|
$result = $auth->status();
|
||
|
if ($result["status"]) {
|
||
|
/*
|
||
|
return $render->renderPage(
|
||
|
["bgImage" => "", "mode" => "index"],
|
||
|
"The Nile List | Members",
|
||
|
"dash/members.html.twig"
|
||
|
);
|
||
|
*/
|
||
|
} else {
|
||
|
//back to index to login
|
||
|
header("Location:/knockknock");
|
||
|
return new Response("<html><body>LOGGED IN</body></html>");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @Route("/screendoor/members/add", name="members-add")
|
||
|
*/
|
||
|
public function addMembers(
|
||
|
Request $request,
|
||
|
Auth $auth,
|
||
|
HandleMembers $members,
|
||
|
ManagerRegistry $doctrine
|
||
|
): Response {
|
||
|
$result = $auth->status();
|
||
|
if ($result["status"]) {
|
||
|
if ($request->getMethod() == "GET") {
|
||
|
return $this->render("back/members.twig", [
|
||
|
"title" => "Get a class from the cupboard",
|
||
|
"mode" => "add"
|
||
|
]);
|
||
|
} else {
|
||
|
//add new member
|
||
|
$token = $request->get("token");
|
||
|
$notice = "";
|
||
|
$entityManager = $doctrine->getManager();
|
||
|
|
||
|
//token check
|
||
|
if (!$this->isCsrfTokenValid("upload", $token)) {
|
||
|
$logger->info("CSRF failure");
|
||
|
|
||
|
return new Response(
|
||
|
"Operation not allowed",
|
||
|
Response::HTTP_BAD_REQUEST,
|
||
|
[
|
||
|
"content-type" => "text/plain",
|
||
|
]
|
||
|
);
|
||
|
}
|
||
|
|
||
|
if (
|
||
|
$request->request->get("handle") == "" ||
|
||
|
$request->request->get("role") == "" ||
|
||
|
$request->request->get("gender") == "" ||
|
||
|
$request->request->get("email") == "" ||
|
||
|
$request->request->get("pronoun") == ""
|
||
|
) {
|
||
|
return new Response("<html><body>All fields required</body></html>");
|
||
|
|
||
|
/*
|
||
|
$notice = "All fields are required, champ.";
|
||
|
return $render->renderPage(
|
||
|
["bgImage" => "", "mode" => "add", "notice" => $notice],
|
||
|
"The Nile List | Add Member Error",
|
||
|
"dash/members.html.twig"
|
||
|
);
|
||
|
*/
|
||
|
}
|
||
|
|
||
|
if (
|
||
|
!filter_var($request->request->get("email"), FILTER_VALIDATE_EMAIL)
|
||
|
) {
|
||
|
return new Response("<html><body>BOGUS EMAIL</body></html>");
|
||
|
|
||
|
/*
|
||
|
$notice = "Need a valid email, slick.";
|
||
|
return $render->renderPage(
|
||
|
["bgImage" => "", "mode" => "add", "notice" => $notice],
|
||
|
"The Nile List | Add Member Error",
|
||
|
"dash/members.html.twig"
|
||
|
);
|
||
|
*/
|
||
|
}
|
||
|
|
||
|
//check clear, call add method
|
||
|
$response = $members->addMember($request);
|
||
|
if ($response["status"]) {
|
||
|
/*
|
||
|
return $render->renderPage(
|
||
|
[
|
||
|
"bgImage" => "",
|
||
|
"mode" => "add",
|
||
|
"notice" => $response["message"],
|
||
|
],
|
||
|
"The Nile List | Add Members",
|
||
|
"dash/members.html.twig"
|
||
|
);
|
||
|
*/
|
||
|
return new Response("<html><body>MEMBER ADDED</body></html>");
|
||
|
} else {
|
||
|
return new Response("<html><body>" . $response["message"] . "</body></html>");
|
||
|
/*
|
||
|
return $render->renderPage(
|
||
|
["bgImage" => "", "message" => $response["message"]],
|
||
|
"The Nile List | Uh Oh Time",
|
||
|
"front/error.html.twig"
|
||
|
);
|
||
|
*/
|
||
|
}
|
||
|
}
|
||
|
} else {
|
||
|
//back to index to login
|
||
|
header("Location:/knockknock");
|
||
|
return new Response("<html><body>LOGGED IN</body></html>");
|
||
|
}
|
||
|
}
|
||
|
}
|