Skip to content

Commit 0352d0e

Browse files
authored
Merge pull request #24 from Thomasfds/2.3-prerelease
2.3
2 parents fd3c722 + cb1d0aa commit 0352d0e

31 files changed

Lines changed: 1634 additions & 474 deletions

.env

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,6 @@ MAILER_DSN=smtp://localhost
2626
# Format described at https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
2727
# IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml
2828
# DATABASE_URL="mysql://db_user:db_password@127.0.0.1:3306/db_name?serverVersion=5.7"
29-
DATABASE_URL="mysql://root@127.0.0.1:3306/otda?serverVersion=5.7"
29+
DATABASE_URL="mysql://root@127.0.0.1:3306/intersect_cms?serverVersion=5.7"
3030
###< doctrine/doctrine-bundle ###
3131

Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
<?php
2+
3+
namespace App\Controller\Admin;
4+
5+
use App\Settings\Api;
6+
use App\Settings\CmsSettings;
7+
use App\Repository\CmsSettingsRepository;
8+
use Knp\Component\Pager\PaginatorInterface;
9+
use Symfony\Component\HttpFoundation\Request;
10+
use Symfony\Component\HttpFoundation\Response;
11+
use Symfony\Component\Routing\Annotation\Route;
12+
use Symfony\Contracts\Translation\TranslatorInterface;
13+
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
14+
15+
/**
16+
* @Route("admin/accounts")
17+
*/
18+
class AccountController extends AbstractController
19+
{
20+
/**
21+
* @Route("/{page}", name="admin.account")
22+
*/
23+
public function account(Api $api, CmsSettingsRepository $settings, Request $request, TranslatorInterface $translator, $page = 0, CmsSettings $setting, PaginatorInterface $paginator): Response
24+
{
25+
26+
if ($request->isMethod('POST')) {
27+
$user_id = $request->request->get('user_id');
28+
$username = $request->request->get('username');
29+
$ban = $request->request->get('ban');
30+
$unban = $request->request->get('unban');
31+
$mute = $request->request->get('mute');
32+
$unmute = $request->request->get('unmute');
33+
34+
if (isset($ban) && isset($username) && !empty($username) && isset($user_id) && !empty($user_id)) {
35+
if ($api->banAccount($user_id, $username, 5, $this->getUser()->getUsername())) {
36+
$this->addFlash('success', $translator->trans('Le compte ' . $username . ' a bien été banni.'));
37+
return $this->redirectToRoute('admin.account', ['page' => 0]);
38+
} else {
39+
$this->addFlash('error', $translator->trans('Une erreur s\'est produit.'));
40+
return $this->redirectToRoute('admin.account', ['page' => 0]);
41+
}
42+
}
43+
44+
if (isset($unban) && isset($username) && !empty($username) && isset($user_id) && !empty($user_id)) {
45+
if ($api->unBanAccount($user_id, $username)) {
46+
$this->addFlash('success', $translator->trans('Le compte ' . $username . ' a bien été débanni.'));
47+
return $this->redirectToRoute('admin.account', ['page' => 0]);
48+
} else {
49+
$this->addFlash('error', $translator->trans('Une erreur s\'est produit.'));
50+
return $this->redirectToRoute('admin.account', ['page' => 0]);
51+
}
52+
}
53+
54+
if (isset($mute) && isset($username) && !empty($username) && isset($user_id) && !empty($user_id)) {
55+
if ($api->MuteAccount($user_id, $username, 5, $this->getUser()->getUsername())) {
56+
$this->addFlash('success', $translator->trans('Le compte ' . $username . ' a bien été mute.'));
57+
return $this->redirectToRoute('admin.account', ['page' => 0]);
58+
} else {
59+
$this->addFlash('error', $translator->trans('Une erreur s\'est produit.'));
60+
return $this->redirectToRoute('admin.account', ['page' => 0]);
61+
}
62+
}
63+
64+
if (isset($unmute) && isset($username) && !empty($username) && isset($user_id) && !empty($user_id)) {
65+
if ($api->unMuteAccount($user_id, $username)) {
66+
$this->addFlash('success', $translator->trans('Le compte ' . $username . ' a bien été unmuted.'));
67+
return $this->redirectToRoute('admin.account', ['page' => 0]);
68+
} else {
69+
$this->addFlash('error', $translator->trans('Une erreur s\'est produit.'));
70+
return $this->redirectToRoute('admin.account', ['page' => 0]);
71+
}
72+
}
73+
}
74+
75+
$users = $api->getAllUsers($page);
76+
$total = $users['Total'];
77+
$total_page = floor($total / 30);
78+
79+
$users = $paginator->paginate(
80+
$api->multipleGetUsers(), // Requête contenant les données à paginer (ici nos articles)
81+
$request->query->getInt('page', 1), // Numéro de la page en cours, passé dans l'URL, 1 si aucune page
82+
10 // Nombre de résultats par page
83+
);
84+
85+
86+
return $this->render($setting->get('theme') . '/admin/account/index.html.twig', [
87+
'total_page' => $total_page,
88+
'items' => $users,
89+
'page_actuel' => $page
90+
]);
91+
}
92+
93+
/**
94+
* @Route("/detail/{user}", name="admin.account.detail")
95+
*/
96+
public function accountDetail(Api $api, CmsSettingsRepository $settings, Request $request, TranslatorInterface $translator, $user, CmsSettings $setting): Response
97+
{
98+
if ($request->isMethod('POST')) {
99+
$user_id = $request->request->get('user_id');
100+
$username = $request->request->get('username');
101+
$ban = $request->request->get('ban');
102+
$unban = $request->request->get('unban');
103+
$mute = $request->request->get('mute');
104+
$unmute = $request->request->get('unmute');
105+
106+
if (isset($ban) && isset($username) && !empty($username) && isset($user_id) && !empty($user_id)) {
107+
if ($api->banAccount($user_id, $username, 5, $this->getUser()->getUsername())) {
108+
$this->addFlash('success', $translator->trans('Le compte ' . $username . ' a bien été banni.'));
109+
return $this->redirectToRoute('admin.account.detail', ['user' => $user]);
110+
} else {
111+
$this->addFlash('error', $translator->trans('Une erreur s\'est produit.'));
112+
return $this->redirectToRoute('admin.account.detail', ['user' => $user]);
113+
}
114+
}
115+
116+
if (isset($unban) && isset($username) && !empty($username) && isset($user_id) && !empty($user_id)) {
117+
if ($api->unBanAccount($user_id, $username)) {
118+
$this->addFlash('success', $translator->trans('Le compte ' . $username . ' a bien été débanni.'));
119+
return $this->redirectToRoute('admin.account.detail', ['user' => $user]);
120+
} else {
121+
$this->addFlash('error', $translator->trans('Une erreur s\'est produit.'));
122+
return $this->redirectToRoute('admin.account.detail', ['user' => $user]);
123+
}
124+
}
125+
126+
if (isset($mute) && isset($username) && !empty($username) && isset($user_id) && !empty($user_id)) {
127+
if ($api->MuteAccount($user_id, $username, 5, $this->getUser()->getUsername())) {
128+
$this->addFlash('success', $translator->trans('Le compte ' . $username . ' a bien été mute.'));
129+
return $this->redirectToRoute('admin.account.detail', ['user' => $user]);
130+
} else {
131+
$this->addFlash('error', $translator->trans('Une erreur s\'est produit.'));
132+
return $this->redirectToRoute('admin.account.detail', ['user' => $user]);
133+
}
134+
}
135+
136+
if (isset($unmute) && isset($username) && !empty($username) && isset($user_id) && !empty($user_id)) {
137+
if ($api->unMuteAccount($user_id, $username)) {
138+
$this->addFlash('success', $translator->trans('Le compte ' . $username . ' a bien été unmuted.'));
139+
return $this->redirectToRoute('admin.account.detail', ['user' => $user]);
140+
} else {
141+
$this->addFlash('error', $translator->trans('Une erreur s\'est produit.'));
142+
return $this->redirectToRoute('admin.account.detail', ['user' => $user]);
143+
}
144+
}
145+
}
146+
147+
// dd($api->getUser($user));
148+
149+
150+
return $this->render($setting->get('theme') . '/admin/account/detail.html.twig', [
151+
'user' => $api->getUser($user),
152+
'characters' => $api->getCharacters($user),
153+
'maxCharacters' => $api->getServerConfig()['Player']['MaxCharacters']
154+
]);
155+
}
156+
}

0 commit comments

Comments
 (0)