|
|
|
@ -63,8 +63,8 @@ class TeamController {
|
|
|
|
|
return ViewHttpResponse::twig('insert_team.html.twig', ['bad_fields' => $badFields]);
|
|
|
|
|
}
|
|
|
|
|
$teamId = $this->model->createTeam($request['name'], $request['picture'], $request['main_color'], $request['second_color']);
|
|
|
|
|
$this->model->addMember($session->getAccount()->getUser()->getEmail(),$teamId,'COACH');
|
|
|
|
|
return HttpResponse::redirect('/team/'.$teamId);
|
|
|
|
|
$this->model->addMember($session->getAccount()->getUser()->getEmail(), $teamId, 'COACH');
|
|
|
|
|
return HttpResponse::redirect('/team/' . $teamId);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -92,7 +92,7 @@ class TeamController {
|
|
|
|
|
return ViewHttpResponse::twig('list_team_by_name.html.twig', ['bad_field' => $badField]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$teams = $this->model->listByName($request['name'],$session->getAccount()->getUser()->getId());
|
|
|
|
|
$teams = $this->model->listByName($request['name'], $session->getAccount()->getUser()->getId());
|
|
|
|
|
|
|
|
|
|
if (empty($teams)) {
|
|
|
|
|
return ViewHttpResponse::twig('display_teams.html.twig', []);
|
|
|
|
@ -106,11 +106,11 @@ class TeamController {
|
|
|
|
|
* @param SessionHandle $session
|
|
|
|
|
* @return HttpResponse
|
|
|
|
|
*/
|
|
|
|
|
public function deleteTeamById(int $id, SessionHandle $session):HttpResponse{
|
|
|
|
|
public function deleteTeamById(int $id, SessionHandle $session): HttpResponse {
|
|
|
|
|
$a = $session->getAccount();
|
|
|
|
|
$ret = $this->model->deleteTeam($a->getUser()->getEmail(),$id);
|
|
|
|
|
if($ret != 0){
|
|
|
|
|
return ViewHttpResponse::twig('display_team.html.twig',['notDeleted' => true]);
|
|
|
|
|
$ret = $this->model->deleteTeam($a->getUser()->getEmail(), $id);
|
|
|
|
|
if($ret != 0) {
|
|
|
|
|
return ViewHttpResponse::twig('display_team.html.twig', ['notDeleted' => true]);
|
|
|
|
|
}
|
|
|
|
|
return HttpResponse::redirect('/');
|
|
|
|
|
}
|
|
|
|
@ -122,22 +122,23 @@ class TeamController {
|
|
|
|
|
* @return ViewHttpResponse a view that displays given team information
|
|
|
|
|
*/
|
|
|
|
|
public function displayTeam(int $id, SessionHandle $session): ViewHttpResponse {
|
|
|
|
|
$result = $this->model->getTeam($id,$session->getAccount()->getUser()->getId());
|
|
|
|
|
if($result == null){
|
|
|
|
|
$result = $this->model->getTeam($id, $session->getAccount()->getUser()->getId());
|
|
|
|
|
if($result == null) {
|
|
|
|
|
return ViewHttpResponse::twig('error.html.twig', [
|
|
|
|
|
'failures' => [ValidationFail::unauthorized("Vous n'avez pas accès à cette équipe.")],
|
|
|
|
|
], HttpCodes::FORBIDDEN);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
$role = $this->model->isCoach($id,$session->getAccount()->getUser()->getEmail());
|
|
|
|
|
} else {
|
|
|
|
|
$role = $this->model->isCoach($id, $session->getAccount()->getUser()->getEmail());
|
|
|
|
|
|
|
|
|
|
return ViewHttpResponse::react('views/TeamPanel.tsx', [
|
|
|
|
|
return ViewHttpResponse::react(
|
|
|
|
|
'views/TeamPanel.tsx',
|
|
|
|
|
[
|
|
|
|
|
'team' => [
|
|
|
|
|
"info" => $result->getInfo(),
|
|
|
|
|
"members" => $result->listMembers()
|
|
|
|
|
"members" => $result->listMembers(),
|
|
|
|
|
],
|
|
|
|
|
'isCoach' => $role,
|
|
|
|
|
'currentUserId'=>$session->getAccount()->getUser()->getId()]
|
|
|
|
|
'currentUserId' => $session->getAccount()->getUser()->getId()]
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -147,8 +148,8 @@ class TeamController {
|
|
|
|
|
* @param SessionHandle $session
|
|
|
|
|
* @return ViewHttpResponse the team panel to add a member
|
|
|
|
|
*/
|
|
|
|
|
public function displayAddMember(int $idTeam,SessionHandle $session): ViewHttpResponse {
|
|
|
|
|
return ViewHttpResponse::twig("add_member.html.twig", ['idTeam'=> $idTeam]);
|
|
|
|
|
public function displayAddMember(int $idTeam, SessionHandle $session): ViewHttpResponse {
|
|
|
|
|
return ViewHttpResponse::twig("add_member.html.twig", ['idTeam' => $idTeam]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -158,9 +159,9 @@ class TeamController {
|
|
|
|
|
* @param SessionHandle $session
|
|
|
|
|
* @return HttpResponse
|
|
|
|
|
*/
|
|
|
|
|
public function addMember(int $idTeam,array $request, SessionHandle $session): HttpResponse {
|
|
|
|
|
public function addMember(int $idTeam, array $request, SessionHandle $session): HttpResponse {
|
|
|
|
|
$errors = [];
|
|
|
|
|
if(!$this->model->isCoach($idTeam,$session->getAccount()->getUser()->getEmail())){
|
|
|
|
|
if(!$this->model->isCoach($idTeam, $session->getAccount()->getUser()->getEmail())) {
|
|
|
|
|
return ViewHttpResponse::twig('error.html.twig', [
|
|
|
|
|
'failures' => [ValidationFail::unauthorized("Vous n'avez pas accès à cette action pour cette équipe.")],
|
|
|
|
|
], HttpCodes::FORBIDDEN);
|
|
|
|
@ -168,18 +169,18 @@ class TeamController {
|
|
|
|
|
$request = HttpRequest::from($request, $errors, [
|
|
|
|
|
"email" => [Validators::email(), Validators::lenBetween(5, 256)],
|
|
|
|
|
]);
|
|
|
|
|
if(!empty($errors)){
|
|
|
|
|
return ViewHttpResponse::twig('add_member.html.twig',['badEmail' => true,'idTeam'=> $idTeam]);
|
|
|
|
|
if(!empty($errors)) {
|
|
|
|
|
return ViewHttpResponse::twig('add_member.html.twig', ['badEmail' => true,'idTeam' => $idTeam]);
|
|
|
|
|
}
|
|
|
|
|
$ret = $this->model->addMember($request['email'], $idTeam, $request['role']);
|
|
|
|
|
|
|
|
|
|
switch($ret){
|
|
|
|
|
switch($ret) {
|
|
|
|
|
case -1:
|
|
|
|
|
return ViewHttpResponse::twig('add_member.html.twig',['notFound' => true,'idTeam'=> $idTeam]);
|
|
|
|
|
return ViewHttpResponse::twig('add_member.html.twig', ['notFound' => true,'idTeam' => $idTeam]);
|
|
|
|
|
case -2:
|
|
|
|
|
return ViewHttpResponse::twig('add_member.html.twig',['alreadyExisting' => true,'idTeam'=> $idTeam]);
|
|
|
|
|
return ViewHttpResponse::twig('add_member.html.twig', ['alreadyExisting' => true,'idTeam' => $idTeam]);
|
|
|
|
|
default:
|
|
|
|
|
return HttpResponse::redirect('/team/'.$idTeam);
|
|
|
|
|
return HttpResponse::redirect('/team/' . $idTeam);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -190,17 +191,17 @@ class TeamController {
|
|
|
|
|
* @param SessionHandle $session
|
|
|
|
|
* @return HttpResponse
|
|
|
|
|
*/
|
|
|
|
|
public function deleteMember(int $idTeam,int $idMember, SessionHandle $session): HttpResponse {
|
|
|
|
|
if(!$this->model->isCoach($idTeam,$session->getAccount()->getUser()->getEmail())){
|
|
|
|
|
public function deleteMember(int $idTeam, int $idMember, SessionHandle $session): HttpResponse {
|
|
|
|
|
if(!$this->model->isCoach($idTeam, $session->getAccount()->getUser()->getEmail())) {
|
|
|
|
|
return ViewHttpResponse::twig('error.html.twig', [
|
|
|
|
|
'failures' => [ValidationFail::unauthorized("Vous n'avez pas accès à cette action pour cette équipe.")],
|
|
|
|
|
], HttpCodes::FORBIDDEN);
|
|
|
|
|
}
|
|
|
|
|
$teamId = $this->model->deleteMember($idMember,$idTeam);
|
|
|
|
|
if($teamId == -1 || $session->getAccount()->getUser()->getId() == $idMember ){
|
|
|
|
|
$teamId = $this->model->deleteMember($idMember, $idTeam);
|
|
|
|
|
if($teamId == -1 || $session->getAccount()->getUser()->getId() == $idMember) {
|
|
|
|
|
return HttpResponse::redirect('/');
|
|
|
|
|
}
|
|
|
|
|
return $this->displayTeam($teamId,$session);
|
|
|
|
|
return $this->displayTeam($teamId, $session);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -208,18 +209,18 @@ class TeamController {
|
|
|
|
|
* @param SessionHandle $session
|
|
|
|
|
* @return ViewHttpResponse
|
|
|
|
|
*/
|
|
|
|
|
public function displayEditTeam(int $idTeam,SessionHandle $session): ViewHttpResponse {
|
|
|
|
|
return ViewHttpResponse::twig("edit_team.html.twig", ['team' => $this->model->getTeam($idTeam,$session->getAccount()->getUser()->getId())]);
|
|
|
|
|
public function displayEditTeam(int $idTeam, SessionHandle $session): ViewHttpResponse {
|
|
|
|
|
return ViewHttpResponse::twig("edit_team.html.twig", ['team' => $this->model->getTeam($idTeam, $session->getAccount()->getUser()->getId())]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @param int $idTeam
|
|
|
|
|
* @param array $request
|
|
|
|
|
* @param array<string,mixed> $request
|
|
|
|
|
* @param SessionHandle $session
|
|
|
|
|
* @return HttpResponse
|
|
|
|
|
*/
|
|
|
|
|
public function editTeam(int $idTeam,array $request,SessionHandle $session): HttpResponse{
|
|
|
|
|
if(!$this->model->isCoach($idTeam,$session->getAccount()->getUser()->getEmail())){
|
|
|
|
|
public function editTeam(int $idTeam, array $request, SessionHandle $session): HttpResponse {
|
|
|
|
|
if(!$this->model->isCoach($idTeam, $session->getAccount()->getUser()->getEmail())) {
|
|
|
|
|
return ViewHttpResponse::twig('error.html.twig', [
|
|
|
|
|
'failures' => [ValidationFail::unauthorized("Vous n'avez pas accès à cette action pour cette équipe.")],
|
|
|
|
|
], HttpCodes::FORBIDDEN);
|
|
|
|
@ -240,7 +241,7 @@ class TeamController {
|
|
|
|
|
}
|
|
|
|
|
return ViewHttpResponse::twig('edit_team.html.twig', ['bad_fields' => $badFields]);
|
|
|
|
|
}
|
|
|
|
|
$this->model->editTeam($idTeam,$request['name'], $request['picture'], $request['main_color'], $request['second_color']);
|
|
|
|
|
return HttpResponse::redirect('/team/'.$idTeam);
|
|
|
|
|
$this->model->editTeam($idTeam, $request['name'], $request['picture'], $request['main_color'], $request['second_color']);
|
|
|
|
|
return HttpResponse::redirect('/team/' . $idTeam);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|