This repository has been archived on 2025-03-05. You can view files and clone it, but cannot push or open issues or pull requests.
TheBadSpace/src/Controller/Routes/Back/Members.php

145 lines
5 KiB
PHP
Raw Normal View History

<?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("/den/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>");
}
}
}