mirror of
https://github.com/tchapi/davis.git
synced 2025-01-17 21:08:17 +01:00
Update to Symfony 5.4, fix deprecations
Also, change getWrappedConnection to getNativeConnection (dbal)
This commit is contained in:
parent
965eee3aa8
commit
882f11b7ba
@ -14,41 +14,41 @@
|
|||||||
"doctrine/orm": "^2.9",
|
"doctrine/orm": "^2.9",
|
||||||
"phpdocumentor/reflection-docblock": "^5.2",
|
"phpdocumentor/reflection-docblock": "^5.2",
|
||||||
"sabre/dav": "^4.1",
|
"sabre/dav": "^4.1",
|
||||||
"sensio/framework-extra-bundle": "^5.6.1",
|
"sensio/framework-extra-bundle": "^6.2",
|
||||||
"symfony/apache-pack": "^1.0",
|
"symfony/apache-pack": "^1.0",
|
||||||
"symfony/asset": "^5.3",
|
"symfony/asset": "^5.4",
|
||||||
"symfony/console": "^5.3",
|
"symfony/console": "^5.4",
|
||||||
"symfony/dotenv": "^5.3",
|
"symfony/dotenv": "^5.4",
|
||||||
"symfony/expression-language": "^5.3",
|
"symfony/expression-language": "^5.4",
|
||||||
"symfony/flex": "^1.10",
|
"symfony/flex": "^1.10",
|
||||||
"symfony/form": "^5.3",
|
"symfony/form": "^5.4",
|
||||||
"symfony/framework-bundle": "^5.3",
|
"symfony/framework-bundle": "^5.4",
|
||||||
"symfony/http-client": "^5.3",
|
"symfony/http-client": "^5.4",
|
||||||
"symfony/intl": "^5.3",
|
"symfony/intl": "^5.4",
|
||||||
"symfony/mailer": "^5.3",
|
"symfony/mailer": "^5.4",
|
||||||
"symfony/monolog-bundle": "^3.1",
|
"symfony/monolog-bundle": "^3.1",
|
||||||
"symfony/process": "^5.3",
|
"symfony/process": "^5.4",
|
||||||
"symfony/property-access": "^5.3",
|
"symfony/property-access": "^5.4",
|
||||||
"symfony/property-info": "^5.3",
|
"symfony/property-info": "^5.4",
|
||||||
"symfony/proxy-manager-bridge": "^5.3",
|
"symfony/proxy-manager-bridge": "^5.4",
|
||||||
"symfony/security-bundle": "^5.3",
|
"symfony/security-bundle": "^5.4",
|
||||||
"symfony/serializer": "^5.3",
|
"symfony/serializer": "^5.4",
|
||||||
"symfony/translation": "^5.3",
|
"symfony/translation": "^5.4",
|
||||||
"symfony/twig-bundle": "^5.3",
|
"symfony/twig-bundle": "^5.4",
|
||||||
"symfony/validator": "^5.3",
|
"symfony/validator": "^5.4",
|
||||||
"symfony/web-link": "^5.3",
|
"symfony/web-link": "^5.4",
|
||||||
"symfony/yaml": "^5.3"
|
"symfony/yaml": "^5.4"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"friendsofphp/php-cs-fixer": "^3.2",
|
"friendsofphp/php-cs-fixer": "^3.2",
|
||||||
"phpunit/phpunit": "^9.5",
|
"phpunit/phpunit": "^9.5",
|
||||||
"symfony/browser-kit": "^5.3",
|
"symfony/browser-kit": "^5.4",
|
||||||
"symfony/css-selector": "^5.3",
|
"symfony/css-selector": "^5.4",
|
||||||
"symfony/debug-bundle": "^5.3",
|
"symfony/debug-bundle": "^5.4",
|
||||||
"symfony/maker-bundle": "^1.0",
|
"symfony/maker-bundle": "^1.0",
|
||||||
"symfony/phpunit-bridge": "^5.3",
|
"symfony/phpunit-bridge": "^5.4",
|
||||||
"symfony/stopwatch": "^5.3",
|
"symfony/stopwatch": "^5.4",
|
||||||
"symfony/web-profiler-bundle": "^5.3"
|
"symfony/web-profiler-bundle": "^5.4"
|
||||||
},
|
},
|
||||||
"config": {
|
"config": {
|
||||||
"preferred-install": {
|
"preferred-install": {
|
||||||
@ -99,7 +99,7 @@
|
|||||||
"extra": {
|
"extra": {
|
||||||
"symfony": {
|
"symfony": {
|
||||||
"allow-contrib": false,
|
"allow-contrib": false,
|
||||||
"require": "5.3.*"
|
"require": "5.4.*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
1760
composer.lock
generated
1760
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@ -15,6 +15,7 @@ use App\Form\AddressBookType;
|
|||||||
use App\Form\CalendarInstanceType;
|
use App\Form\CalendarInstanceType;
|
||||||
use App\Form\UserType;
|
use App\Form\UserType;
|
||||||
use App\Services\Utils;
|
use App\Services\Utils;
|
||||||
|
use Doctrine\Persistence\ManagerRegistry;
|
||||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
@ -27,13 +28,13 @@ class AdminController extends AbstractController
|
|||||||
/**
|
/**
|
||||||
* @Route("/dashboard", name="dashboard")
|
* @Route("/dashboard", name="dashboard")
|
||||||
*/
|
*/
|
||||||
public function dashboard()
|
public function dashboard(ManagerRegistry $doctrine)
|
||||||
{
|
{
|
||||||
$users = $this->get('doctrine')->getRepository(User::class)->findAll();
|
$users = $doctrine->getRepository(User::class)->findAll();
|
||||||
$calendars = $this->get('doctrine')->getRepository(CalendarInstance::class)->findAll();
|
$calendars = $doctrine->getRepository(CalendarInstance::class)->findAll();
|
||||||
$addressbooks = $this->get('doctrine')->getRepository(AddressBook::class)->findAll();
|
$addressbooks = $doctrine->getRepository(AddressBook::class)->findAll();
|
||||||
$events = $this->get('doctrine')->getRepository(CalendarObject::class)->findAll();
|
$events = $doctrine->getRepository(CalendarObject::class)->findAll();
|
||||||
$contacts = $this->get('doctrine')->getRepository(Card::class)->findAll();
|
$contacts = $doctrine->getRepository(Card::class)->findAll();
|
||||||
|
|
||||||
return $this->render('dashboard.html.twig', [
|
return $this->render('dashboard.html.twig', [
|
||||||
'users' => $users,
|
'users' => $users,
|
||||||
@ -50,9 +51,9 @@ class AdminController extends AbstractController
|
|||||||
/**
|
/**
|
||||||
* @Route("/users", name="users")
|
* @Route("/users", name="users")
|
||||||
*/
|
*/
|
||||||
public function users()
|
public function users(ManagerRegistry $doctrine)
|
||||||
{
|
{
|
||||||
$principals = $this->get('doctrine')->getRepository(Principal::class)->findByIsMain(true);
|
$principals = $doctrine->getRepository(Principal::class)->findByIsMain(true);
|
||||||
|
|
||||||
return $this->render('users/index.html.twig', [
|
return $this->render('users/index.html.twig', [
|
||||||
'principals' => $principals,
|
'principals' => $principals,
|
||||||
@ -63,15 +64,15 @@ class AdminController extends AbstractController
|
|||||||
* @Route("/users/new", name="user_create")
|
* @Route("/users/new", name="user_create")
|
||||||
* @Route("/users/edit/{username}", name="user_edit")
|
* @Route("/users/edit/{username}", name="user_edit")
|
||||||
*/
|
*/
|
||||||
public function userCreate(Utils $utils, Request $request, ?string $username, TranslatorInterface $trans)
|
public function userCreate(ManagerRegistry $doctrine, Utils $utils, Request $request, ?string $username, TranslatorInterface $trans)
|
||||||
{
|
{
|
||||||
if ($username) {
|
if ($username) {
|
||||||
$user = $this->get('doctrine')->getRepository(User::class)->findOneByUsername($username);
|
$user = $doctrine->getRepository(User::class)->findOneByUsername($username);
|
||||||
if (!$user) {
|
if (!$user) {
|
||||||
throw $this->createNotFoundException('User not found');
|
throw $this->createNotFoundException('User not found');
|
||||||
}
|
}
|
||||||
$oldHash = $user->getPassword();
|
$oldHash = $user->getPassword();
|
||||||
$principal = $this->get('doctrine')->getRepository(Principal::class)->findOneByUri(Principal::PREFIX.$username);
|
$principal = $doctrine->getRepository(Principal::class)->findOneByUri(Principal::PREFIX.$username);
|
||||||
} else {
|
} else {
|
||||||
$user = new User();
|
$user = new User();
|
||||||
$principal = new Principal();
|
$principal = new Principal();
|
||||||
@ -99,7 +100,7 @@ class AdminController extends AbstractController
|
|||||||
$user->setPassword($hash);
|
$user->setPassword($hash);
|
||||||
}
|
}
|
||||||
|
|
||||||
$entityManager = $this->get('doctrine')->getManager();
|
$entityManager = $doctrine->getManager();
|
||||||
|
|
||||||
// If it's a new user, create default calendar and address book, and principal
|
// If it's a new user, create default calendar and address book, and principal
|
||||||
if (null === $user->getId()) {
|
if (null === $user->getId()) {
|
||||||
@ -155,21 +156,21 @@ class AdminController extends AbstractController
|
|||||||
/**
|
/**
|
||||||
* @Route("/users/delete/{username}", name="user_delete")
|
* @Route("/users/delete/{username}", name="user_delete")
|
||||||
*/
|
*/
|
||||||
public function userDelete(string $username, TranslatorInterface $trans)
|
public function userDelete(ManagerRegistry $doctrine, string $username, TranslatorInterface $trans)
|
||||||
{
|
{
|
||||||
$user = $this->get('doctrine')->getRepository(User::class)->findOneByUsername($username);
|
$user = $doctrine->getRepository(User::class)->findOneByUsername($username);
|
||||||
if (!$user) {
|
if (!$user) {
|
||||||
throw $this->createNotFoundException('User not found');
|
throw $this->createNotFoundException('User not found');
|
||||||
}
|
}
|
||||||
|
|
||||||
$entityManager = $this->get('doctrine')->getManager();
|
$entityManager = $doctrine->getManager();
|
||||||
$entityManager->remove($user);
|
$entityManager->remove($user);
|
||||||
|
|
||||||
$principal = $this->get('doctrine')->getRepository(Principal::class)->findOneByUri(Principal::PREFIX.$username);
|
$principal = $doctrine->getRepository(Principal::class)->findOneByUri(Principal::PREFIX.$username);
|
||||||
$entityManager->remove($principal);
|
$entityManager->remove($principal);
|
||||||
|
|
||||||
// Remove calendars and addressbooks
|
// Remove calendars and addressbooks
|
||||||
$calendars = $this->get('doctrine')->getRepository(CalendarInstance::class)->findByPrincipalUri(Principal::PREFIX.$username);
|
$calendars = $doctrine->getRepository(CalendarInstance::class)->findByPrincipalUri(Principal::PREFIX.$username);
|
||||||
foreach ($calendars ?? [] as $instance) {
|
foreach ($calendars ?? [] as $instance) {
|
||||||
foreach ($instance->getCalendar()->getObjects() ?? [] as $object) {
|
foreach ($instance->getCalendar()->getObjects() ?? [] as $object) {
|
||||||
$entityManager->remove($object);
|
$entityManager->remove($object);
|
||||||
@ -180,16 +181,16 @@ class AdminController extends AbstractController
|
|||||||
$entityManager->remove($instance->getCalendar());
|
$entityManager->remove($instance->getCalendar());
|
||||||
$entityManager->remove($instance);
|
$entityManager->remove($instance);
|
||||||
}
|
}
|
||||||
$calendarsSubscriptions = $this->get('doctrine')->getRepository(CalendarSubscription::class)->findByPrincipalUri(Principal::PREFIX.$username);
|
$calendarsSubscriptions = $doctrine->getRepository(CalendarSubscription::class)->findByPrincipalUri(Principal::PREFIX.$username);
|
||||||
foreach ($calendarsSubscriptions ?? [] as $subscription) {
|
foreach ($calendarsSubscriptions ?? [] as $subscription) {
|
||||||
$entityManager->remove($subscription);
|
$entityManager->remove($subscription);
|
||||||
}
|
}
|
||||||
$schedulingObjects = $this->get('doctrine')->getRepository(SchedulingObject::class)->findByPrincipalUri(Principal::PREFIX.$username);
|
$schedulingObjects = $doctrine->getRepository(SchedulingObject::class)->findByPrincipalUri(Principal::PREFIX.$username);
|
||||||
foreach ($schedulingObjects ?? [] as $object) {
|
foreach ($schedulingObjects ?? [] as $object) {
|
||||||
$entityManager->remove($object);
|
$entityManager->remove($object);
|
||||||
}
|
}
|
||||||
|
|
||||||
$addressbooks = $this->get('doctrine')->getRepository(AddressBook::class)->findByPrincipalUri(Principal::PREFIX.$username);
|
$addressbooks = $doctrine->getRepository(AddressBook::class)->findByPrincipalUri(Principal::PREFIX.$username);
|
||||||
foreach ($addressbooks ?? [] as $addressbook) {
|
foreach ($addressbooks ?? [] as $addressbook) {
|
||||||
foreach ($addressbook->getCards() ?? [] as $card) {
|
foreach ($addressbook->getCards() ?? [] as $card) {
|
||||||
$entityManager->remove($card);
|
$entityManager->remove($card);
|
||||||
@ -209,15 +210,15 @@ class AdminController extends AbstractController
|
|||||||
/**
|
/**
|
||||||
* @Route("/users/delegates/{username}", name="delegates")
|
* @Route("/users/delegates/{username}", name="delegates")
|
||||||
*/
|
*/
|
||||||
public function userDelegates(string $username)
|
public function userDelegates(ManagerRegistry $doctrine, string $username)
|
||||||
{
|
{
|
||||||
$principal = $this->get('doctrine')->getRepository(Principal::class)->findOneByUri(Principal::PREFIX.$username);
|
$principal = $doctrine->getRepository(Principal::class)->findOneByUri(Principal::PREFIX.$username);
|
||||||
|
|
||||||
$allPrincipalsExcept = $this->get('doctrine')->getRepository(Principal::class)->findAllExceptPrincipal(Principal::PREFIX.$username);
|
$allPrincipalsExcept = $doctrine->getRepository(Principal::class)->findAllExceptPrincipal(Principal::PREFIX.$username);
|
||||||
|
|
||||||
// Get delegates. They are not linked to the principal in itself, but to its proxies
|
// Get delegates. They are not linked to the principal in itself, but to its proxies
|
||||||
$principalProxyRead = $this->get('doctrine')->getRepository(Principal::class)->findOneByUri($principal->getUri().Principal::READ_PROXY_SUFFIX);
|
$principalProxyRead = $doctrine->getRepository(Principal::class)->findOneByUri($principal->getUri().Principal::READ_PROXY_SUFFIX);
|
||||||
$principalProxyWrite = $this->get('doctrine')->getRepository(Principal::class)->findOneByUri($principal->getUri().Principal::WRITE_PROXY_SUFFIX);
|
$principalProxyWrite = $doctrine->getRepository(Principal::class)->findOneByUri($principal->getUri().Principal::WRITE_PROXY_SUFFIX);
|
||||||
|
|
||||||
return $this->render('users/delegates.html.twig', [
|
return $this->render('users/delegates.html.twig', [
|
||||||
'principal' => $principal,
|
'principal' => $principal,
|
||||||
@ -231,15 +232,15 @@ class AdminController extends AbstractController
|
|||||||
/**
|
/**
|
||||||
* @Route("/users/delegation/{username}/{toggle}", name="user_delegation_toggle", requirements={"toggle":"(on|off)"})
|
* @Route("/users/delegation/{username}/{toggle}", name="user_delegation_toggle", requirements={"toggle":"(on|off)"})
|
||||||
*/
|
*/
|
||||||
public function userToggleDelegation(string $username, string $toggle)
|
public function userToggleDelegation(ManagerRegistry $doctrine, string $username, string $toggle)
|
||||||
{
|
{
|
||||||
$principal = $this->get('doctrine')->getRepository(Principal::class)->findOneByUri(Principal::PREFIX.$username);
|
$principal = $doctrine->getRepository(Principal::class)->findOneByUri(Principal::PREFIX.$username);
|
||||||
|
|
||||||
if (!$principal) {
|
if (!$principal) {
|
||||||
throw $this->createNotFoundException('Principal not found');
|
throw $this->createNotFoundException('Principal not found');
|
||||||
}
|
}
|
||||||
|
|
||||||
$entityManager = $this->get('doctrine')->getManager();
|
$entityManager = $doctrine->getManager();
|
||||||
|
|
||||||
if ('on' === $toggle) {
|
if ('on' === $toggle) {
|
||||||
$principalProxyRead = new Principal();
|
$principalProxyRead = new Principal();
|
||||||
@ -252,10 +253,10 @@ class AdminController extends AbstractController
|
|||||||
->setIsMain(false);
|
->setIsMain(false);
|
||||||
$entityManager->persist($principalProxyWrite);
|
$entityManager->persist($principalProxyWrite);
|
||||||
} else {
|
} else {
|
||||||
$principalProxyRead = $this->get('doctrine')->getRepository(Principal::class)->findOneByUri($principal->getUri().Principal::READ_PROXY_SUFFIX);
|
$principalProxyRead = $doctrine->getRepository(Principal::class)->findOneByUri($principal->getUri().Principal::READ_PROXY_SUFFIX);
|
||||||
$principalProxyRead && $entityManager->remove($principalProxyRead);
|
$principalProxyRead && $entityManager->remove($principalProxyRead);
|
||||||
|
|
||||||
$principalProxyWrite = $this->get('doctrine')->getRepository(Principal::class)->findOneByUri($principal->getUri().Principal::WRITE_PROXY_SUFFIX);
|
$principalProxyWrite = $doctrine->getRepository(Principal::class)->findOneByUri($principal->getUri().Principal::WRITE_PROXY_SUFFIX);
|
||||||
$principalProxyWrite && $entityManager->remove($principalProxyWrite);
|
$principalProxyWrite && $entityManager->remove($principalProxyWrite);
|
||||||
|
|
||||||
// Remove also delegates
|
// Remove also delegates
|
||||||
@ -270,9 +271,9 @@ class AdminController extends AbstractController
|
|||||||
/**
|
/**
|
||||||
* @Route("/users/delegates/{username}/add", name="user_delegate_add")
|
* @Route("/users/delegates/{username}/add", name="user_delegate_add")
|
||||||
*/
|
*/
|
||||||
public function userDelegateAdd(Request $request, string $username)
|
public function userDelegateAdd(ManagerRegistry $doctrine, Request $request, string $username)
|
||||||
{
|
{
|
||||||
$newMemberToAdd = $this->get('doctrine')->getRepository(Principal::class)->findOneById($request->get('principalId'));
|
$newMemberToAdd = $doctrine->getRepository(Principal::class)->findOneById($request->get('principalId'));
|
||||||
|
|
||||||
if (!$newMemberToAdd) {
|
if (!$newMemberToAdd) {
|
||||||
throw $this->createNotFoundException('Member not found');
|
throw $this->createNotFoundException('Member not found');
|
||||||
@ -281,15 +282,15 @@ class AdminController extends AbstractController
|
|||||||
// Depending on write access or not, attach to the correct principal
|
// Depending on write access or not, attach to the correct principal
|
||||||
if ('true' === $request->get('write')) {
|
if ('true' === $request->get('write')) {
|
||||||
// Let's check that there wasn't a read proxy first
|
// Let's check that there wasn't a read proxy first
|
||||||
$principalProxyRead = $this->get('doctrine')->getRepository(Principal::class)->findOneByUri(Principal::PREFIX.$username.Principal::READ_PROXY_SUFFIX);
|
$principalProxyRead = $doctrine->getRepository(Principal::class)->findOneByUri(Principal::PREFIX.$username.Principal::READ_PROXY_SUFFIX);
|
||||||
if (!$principalProxyRead) {
|
if (!$principalProxyRead) {
|
||||||
throw $this->createNotFoundException('Principal linked to this calendar not found');
|
throw $this->createNotFoundException('Principal linked to this calendar not found');
|
||||||
}
|
}
|
||||||
$principalProxyRead->removeDelegee($newMemberToAdd);
|
$principalProxyRead->removeDelegee($newMemberToAdd);
|
||||||
// And then add the Write access
|
// And then add the Write access
|
||||||
$principal = $this->get('doctrine')->getRepository(Principal::class)->findOneByUri(Principal::PREFIX.$username.Principal::WRITE_PROXY_SUFFIX);
|
$principal = $doctrine->getRepository(Principal::class)->findOneByUri(Principal::PREFIX.$username.Principal::WRITE_PROXY_SUFFIX);
|
||||||
} else {
|
} else {
|
||||||
$principal = $this->get('doctrine')->getRepository(Principal::class)->findOneByUri(Principal::PREFIX.$username.Principal::READ_PROXY_SUFFIX);
|
$principal = $doctrine->getRepository(Principal::class)->findOneByUri(Principal::PREFIX.$username.Principal::READ_PROXY_SUFFIX);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$principal) {
|
if (!$principal) {
|
||||||
@ -297,7 +298,7 @@ class AdminController extends AbstractController
|
|||||||
}
|
}
|
||||||
|
|
||||||
$principal->addDelegee($newMemberToAdd);
|
$principal->addDelegee($newMemberToAdd);
|
||||||
$entityManager = $this->get('doctrine')->getManager();
|
$entityManager = $doctrine->getManager();
|
||||||
$entityManager->flush();
|
$entityManager->flush();
|
||||||
|
|
||||||
return $this->redirectToRoute('delegates', ['username' => $username]);
|
return $this->redirectToRoute('delegates', ['username' => $username]);
|
||||||
@ -306,20 +307,20 @@ class AdminController extends AbstractController
|
|||||||
/**
|
/**
|
||||||
* @Route("/users/delegates/{username}/remove/{principalProxyId}/{delegateId}", name="user_delegate_remove", requirements={"principalProxyId":"\d+", "delegateId":"\d+"})
|
* @Route("/users/delegates/{username}/remove/{principalProxyId}/{delegateId}", name="user_delegate_remove", requirements={"principalProxyId":"\d+", "delegateId":"\d+"})
|
||||||
*/
|
*/
|
||||||
public function userDelegateRemove(Request $request, string $username, int $principalProxyId, int $delegateId)
|
public function userDelegateRemove(ManagerRegistry $doctrine, Request $request, string $username, int $principalProxyId, int $delegateId)
|
||||||
{
|
{
|
||||||
$principalProxy = $this->get('doctrine')->getRepository(Principal::class)->findOneById($principalProxyId);
|
$principalProxy = $doctrine->getRepository(Principal::class)->findOneById($principalProxyId);
|
||||||
if (!$principalProxy) {
|
if (!$principalProxy) {
|
||||||
throw $this->createNotFoundException('Principal linked to this calendar not found');
|
throw $this->createNotFoundException('Principal linked to this calendar not found');
|
||||||
}
|
}
|
||||||
|
|
||||||
$memberToRemove = $this->get('doctrine')->getRepository(Principal::class)->findOneById($delegateId);
|
$memberToRemove = $doctrine->getRepository(Principal::class)->findOneById($delegateId);
|
||||||
if (!$memberToRemove) {
|
if (!$memberToRemove) {
|
||||||
throw $this->createNotFoundException('Member not found');
|
throw $this->createNotFoundException('Member not found');
|
||||||
}
|
}
|
||||||
|
|
||||||
$principalProxy->removeDelegee($memberToRemove);
|
$principalProxy->removeDelegee($memberToRemove);
|
||||||
$entityManager = $this->get('doctrine')->getManager();
|
$entityManager = $doctrine->getManager();
|
||||||
$entityManager->flush();
|
$entityManager->flush();
|
||||||
|
|
||||||
return $this->redirectToRoute('delegates', ['username' => $username]);
|
return $this->redirectToRoute('delegates', ['username' => $username]);
|
||||||
@ -328,10 +329,10 @@ class AdminController extends AbstractController
|
|||||||
/**
|
/**
|
||||||
* @Route("/calendars/{username}", name="calendars")
|
* @Route("/calendars/{username}", name="calendars")
|
||||||
*/
|
*/
|
||||||
public function calendars(UrlGeneratorInterface $router, string $username)
|
public function calendars(ManagerRegistry $doctrine, UrlGeneratorInterface $router, string $username)
|
||||||
{
|
{
|
||||||
$principal = $this->get('doctrine')->getRepository(Principal::class)->findOneByUri(Principal::PREFIX.$username);
|
$principal = $doctrine->getRepository(Principal::class)->findOneByUri(Principal::PREFIX.$username);
|
||||||
$allCalendars = $this->get('doctrine')->getRepository(CalendarInstance::class)->findByPrincipalUri(Principal::PREFIX.$username);
|
$allCalendars = $doctrine->getRepository(CalendarInstance::class)->findByPrincipalUri(Principal::PREFIX.$username);
|
||||||
|
|
||||||
// Separate shared calendars
|
// Separate shared calendars
|
||||||
$calendars = [];
|
$calendars = [];
|
||||||
@ -351,7 +352,7 @@ class AdminController extends AbstractController
|
|||||||
}
|
}
|
||||||
|
|
||||||
// We need all the other users so we can propose to share calendars with them
|
// We need all the other users so we can propose to share calendars with them
|
||||||
$allPrincipalsExcept = $this->get('doctrine')->getRepository(Principal::class)->findAllExceptPrincipal(Principal::PREFIX.$username);
|
$allPrincipalsExcept = $doctrine->getRepository(Principal::class)->findAllExceptPrincipal(Principal::PREFIX.$username);
|
||||||
|
|
||||||
return $this->render('calendars/index.html.twig', [
|
return $this->render('calendars/index.html.twig', [
|
||||||
'calendars' => $calendars,
|
'calendars' => $calendars,
|
||||||
@ -366,16 +367,16 @@ class AdminController extends AbstractController
|
|||||||
* @Route("/calendars/{username}/new", name="calendar_create")
|
* @Route("/calendars/{username}/new", name="calendar_create")
|
||||||
* @Route("/calendars/{username}/edit/{id}", name="calendar_edit", requirements={"id":"\d+"})
|
* @Route("/calendars/{username}/edit/{id}", name="calendar_edit", requirements={"id":"\d+"})
|
||||||
*/
|
*/
|
||||||
public function calendarEdit(Request $request, string $username, ?int $id, TranslatorInterface $trans)
|
public function calendarEdit(ManagerRegistry $doctrine, Request $request, string $username, ?int $id, TranslatorInterface $trans)
|
||||||
{
|
{
|
||||||
$principal = $this->get('doctrine')->getRepository(Principal::class)->findOneByUri(Principal::PREFIX.$username);
|
$principal = $doctrine->getRepository(Principal::class)->findOneByUri(Principal::PREFIX.$username);
|
||||||
|
|
||||||
if (!$principal) {
|
if (!$principal) {
|
||||||
throw $this->createNotFoundException('User not found');
|
throw $this->createNotFoundException('User not found');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($id) {
|
if ($id) {
|
||||||
$calendarInstance = $this->get('doctrine')->getRepository(CalendarInstance::class)->findOneById($id);
|
$calendarInstance = $doctrine->getRepository(CalendarInstance::class)->findOneById($id);
|
||||||
if (!$calendarInstance) {
|
if (!$calendarInstance) {
|
||||||
throw $this->createNotFoundException('Calendar not found');
|
throw $this->createNotFoundException('Calendar not found');
|
||||||
}
|
}
|
||||||
@ -413,7 +414,7 @@ class AdminController extends AbstractController
|
|||||||
|
|
||||||
$calendarInstance->getCalendar()->setComponents(implode(',', $components));
|
$calendarInstance->getCalendar()->setComponents(implode(',', $components));
|
||||||
|
|
||||||
$entityManager = $this->get('doctrine')->getManager();
|
$entityManager = $doctrine->getManager();
|
||||||
|
|
||||||
$entityManager->persist($calendarInstance);
|
$entityManager->persist($calendarInstance);
|
||||||
$entityManager->flush();
|
$entityManager->flush();
|
||||||
@ -434,9 +435,9 @@ class AdminController extends AbstractController
|
|||||||
/**
|
/**
|
||||||
* @Route("/calendars/{username}/shares/{calendarid}", name="calendar_shares", requirements={"calendarid":"\d+"})
|
* @Route("/calendars/{username}/shares/{calendarid}", name="calendar_shares", requirements={"calendarid":"\d+"})
|
||||||
*/
|
*/
|
||||||
public function calendarShares(string $username, string $calendarid, TranslatorInterface $trans)
|
public function calendarShares(ManagerRegistry $doctrine, string $username, string $calendarid, TranslatorInterface $trans)
|
||||||
{
|
{
|
||||||
$instances = $this->get('doctrine')->getRepository(CalendarInstance::class)->findSharedInstancesOfInstance($calendarid);
|
$instances = $doctrine->getRepository(CalendarInstance::class)->findSharedInstancesOfInstance($calendarid);
|
||||||
|
|
||||||
$response = [];
|
$response = [];
|
||||||
foreach ($instances as $instance) {
|
foreach ($instances as $instance) {
|
||||||
@ -456,25 +457,25 @@ class AdminController extends AbstractController
|
|||||||
/**
|
/**
|
||||||
* @Route("/calendars/{username}/share/{instanceid}", name="calendar_share_add", requirements={"instanceid":"\d+"})
|
* @Route("/calendars/{username}/share/{instanceid}", name="calendar_share_add", requirements={"instanceid":"\d+"})
|
||||||
*/
|
*/
|
||||||
public function calendarShareAdd(Request $request, string $username, string $instanceid, TranslatorInterface $trans)
|
public function calendarShareAdd(ManagerRegistry $doctrine, Request $request, string $username, string $instanceid, TranslatorInterface $trans)
|
||||||
{
|
{
|
||||||
$instance = $this->get('doctrine')->getRepository(CalendarInstance::class)->findOneById($instanceid);
|
$instance = $doctrine->getRepository(CalendarInstance::class)->findOneById($instanceid);
|
||||||
if (!$instance) {
|
if (!$instance) {
|
||||||
throw $this->createNotFoundException('Calendar not found');
|
throw $this->createNotFoundException('Calendar not found');
|
||||||
}
|
}
|
||||||
|
|
||||||
$newShareeToAdd = $this->get('doctrine')->getRepository(Principal::class)->findOneById($request->get('principalId'));
|
$newShareeToAdd = $doctrine->getRepository(Principal::class)->findOneById($request->get('principalId'));
|
||||||
if (!$newShareeToAdd) {
|
if (!$newShareeToAdd) {
|
||||||
throw $this->createNotFoundException('Member not found');
|
throw $this->createNotFoundException('Member not found');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Let's check that there wasn't another instance
|
// Let's check that there wasn't another instance
|
||||||
// already existing first, so we can update it:
|
// already existing first, so we can update it:
|
||||||
$existingSharedInstance = $this->get('doctrine')->getRepository(CalendarInstance::class)->findSharedInstanceOfInstanceFor($instance->getCalendar()->getId(), $newShareeToAdd->getUri());
|
$existingSharedInstance = $doctrine->getRepository(CalendarInstance::class)->findSharedInstanceOfInstanceFor($instance->getCalendar()->getId(), $newShareeToAdd->getUri());
|
||||||
|
|
||||||
$writeAccess = ('true' === $request->get('write') ? CalendarInstance::ACCESS_READWRITE : CalendarInstance::ACCESS_READ);
|
$writeAccess = ('true' === $request->get('write') ? CalendarInstance::ACCESS_READWRITE : CalendarInstance::ACCESS_READ);
|
||||||
|
|
||||||
$entityManager = $this->get('doctrine')->getManager();
|
$entityManager = $doctrine->getManager();
|
||||||
|
|
||||||
if ($existingSharedInstance) {
|
if ($existingSharedInstance) {
|
||||||
$existingSharedInstance->setAccess($writeAccess);
|
$existingSharedInstance->setAccess($writeAccess);
|
||||||
@ -500,21 +501,21 @@ class AdminController extends AbstractController
|
|||||||
/**
|
/**
|
||||||
* @Route("/calendars/{username}/delete/{id}", name="calendar_delete", requirements={"id":"\d+"})
|
* @Route("/calendars/{username}/delete/{id}", name="calendar_delete", requirements={"id":"\d+"})
|
||||||
*/
|
*/
|
||||||
public function calendarDelete(string $username, string $id, TranslatorInterface $trans)
|
public function calendarDelete(ManagerRegistry $doctrine, string $username, string $id, TranslatorInterface $trans)
|
||||||
{
|
{
|
||||||
$instance = $this->get('doctrine')->getRepository(CalendarInstance::class)->findOneById($id);
|
$instance = $doctrine->getRepository(CalendarInstance::class)->findOneById($id);
|
||||||
if (!$instance) {
|
if (!$instance) {
|
||||||
throw $this->createNotFoundException('Calendar not found');
|
throw $this->createNotFoundException('Calendar not found');
|
||||||
}
|
}
|
||||||
|
|
||||||
$entityManager = $this->get('doctrine')->getManager();
|
$entityManager = $doctrine->getManager();
|
||||||
|
|
||||||
$calendarsSubscriptions = $this->get('doctrine')->getRepository(CalendarSubscription::class)->findByPrincipalUri($instance->getPrincipalUri());
|
$calendarsSubscriptions = $doctrine->getRepository(CalendarSubscription::class)->findByPrincipalUri($instance->getPrincipalUri());
|
||||||
foreach ($calendarsSubscriptions ?? [] as $subscription) {
|
foreach ($calendarsSubscriptions ?? [] as $subscription) {
|
||||||
$entityManager->remove($subscription);
|
$entityManager->remove($subscription);
|
||||||
}
|
}
|
||||||
|
|
||||||
$schedulingObjects = $this->get('doctrine')->getRepository(SchedulingObject::class)->findByPrincipalUri($instance->getPrincipalUri());
|
$schedulingObjects = $doctrine->getRepository(SchedulingObject::class)->findByPrincipalUri($instance->getPrincipalUri());
|
||||||
foreach ($schedulingObjects ?? [] as $object) {
|
foreach ($schedulingObjects ?? [] as $object) {
|
||||||
$entityManager->remove($object);
|
$entityManager->remove($object);
|
||||||
}
|
}
|
||||||
@ -537,14 +538,14 @@ class AdminController extends AbstractController
|
|||||||
/**
|
/**
|
||||||
* @Route("/calendars/{username}/revoke/{id}", name="calendar_revoke", requirements={"id":"\d+"})
|
* @Route("/calendars/{username}/revoke/{id}", name="calendar_revoke", requirements={"id":"\d+"})
|
||||||
*/
|
*/
|
||||||
public function calendarRevoke(string $username, string $id, TranslatorInterface $trans)
|
public function calendarRevoke(ManagerRegistry $doctrine, string $username, string $id, TranslatorInterface $trans)
|
||||||
{
|
{
|
||||||
$instance = $this->get('doctrine')->getRepository(CalendarInstance::class)->findOneById($id);
|
$instance = $doctrine->getRepository(CalendarInstance::class)->findOneById($id);
|
||||||
if (!$instance) {
|
if (!$instance) {
|
||||||
throw $this->createNotFoundException('Calendar not found');
|
throw $this->createNotFoundException('Calendar not found');
|
||||||
}
|
}
|
||||||
|
|
||||||
$entityManager = $this->get('doctrine')->getManager();
|
$entityManager = $doctrine->getManager();
|
||||||
$entityManager->remove($instance);
|
$entityManager->remove($instance);
|
||||||
|
|
||||||
$entityManager->flush();
|
$entityManager->flush();
|
||||||
@ -556,10 +557,10 @@ class AdminController extends AbstractController
|
|||||||
/**
|
/**
|
||||||
* @Route("/adressbooks/{username}", name="address_books")
|
* @Route("/adressbooks/{username}", name="address_books")
|
||||||
*/
|
*/
|
||||||
public function addressBooks(string $username)
|
public function addressBooks(ManagerRegistry $doctrine, string $username)
|
||||||
{
|
{
|
||||||
$principal = $this->get('doctrine')->getRepository(Principal::class)->findOneByUri(Principal::PREFIX.$username);
|
$principal = $doctrine->getRepository(Principal::class)->findOneByUri(Principal::PREFIX.$username);
|
||||||
$addressbooks = $this->get('doctrine')->getRepository(AddressBook::class)->findByPrincipalUri(Principal::PREFIX.$username);
|
$addressbooks = $doctrine->getRepository(AddressBook::class)->findByPrincipalUri(Principal::PREFIX.$username);
|
||||||
|
|
||||||
return $this->render('addressbooks/index.html.twig', [
|
return $this->render('addressbooks/index.html.twig', [
|
||||||
'addressbooks' => $addressbooks,
|
'addressbooks' => $addressbooks,
|
||||||
@ -572,16 +573,16 @@ class AdminController extends AbstractController
|
|||||||
* @Route("/adressbooks/{username}/new", name="addressbook_create")
|
* @Route("/adressbooks/{username}/new", name="addressbook_create")
|
||||||
* @Route("/adressbooks/{username}/edit/{id}", name="addressbook_edit", requirements={"id":"\d+"})
|
* @Route("/adressbooks/{username}/edit/{id}", name="addressbook_edit", requirements={"id":"\d+"})
|
||||||
*/
|
*/
|
||||||
public function addressbookCreate(Request $request, string $username, ?int $id, TranslatorInterface $trans)
|
public function addressbookCreate(ManagerRegistry $doctrine, Request $request, string $username, ?int $id, TranslatorInterface $trans)
|
||||||
{
|
{
|
||||||
$principal = $this->get('doctrine')->getRepository(Principal::class)->findOneByUri(Principal::PREFIX.$username);
|
$principal = $doctrine->getRepository(Principal::class)->findOneByUri(Principal::PREFIX.$username);
|
||||||
|
|
||||||
if (!$principal) {
|
if (!$principal) {
|
||||||
throw $this->createNotFoundException('User not found');
|
throw $this->createNotFoundException('User not found');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($id) {
|
if ($id) {
|
||||||
$addressbook = $this->get('doctrine')->getRepository(AddressBook::class)->findOneById($id);
|
$addressbook = $doctrine->getRepository(AddressBook::class)->findOneById($id);
|
||||||
if (!$addressbook) {
|
if (!$addressbook) {
|
||||||
throw $this->createNotFoundException('Address book not found');
|
throw $this->createNotFoundException('Address book not found');
|
||||||
}
|
}
|
||||||
@ -596,7 +597,7 @@ class AdminController extends AbstractController
|
|||||||
$form->handleRequest($request);
|
$form->handleRequest($request);
|
||||||
|
|
||||||
if ($form->isSubmitted() && $form->isValid()) {
|
if ($form->isSubmitted() && $form->isValid()) {
|
||||||
$entityManager = $this->get('doctrine')->getManager();
|
$entityManager = $doctrine->getManager();
|
||||||
|
|
||||||
$entityManager->persist($addressbook);
|
$entityManager->persist($addressbook);
|
||||||
$entityManager->flush();
|
$entityManager->flush();
|
||||||
@ -617,14 +618,14 @@ class AdminController extends AbstractController
|
|||||||
/**
|
/**
|
||||||
* @Route("/addressbooks/{username}/delete/{id}", name="addressbook_delete", requirements={"id":"\d+"})
|
* @Route("/addressbooks/{username}/delete/{id}", name="addressbook_delete", requirements={"id":"\d+"})
|
||||||
*/
|
*/
|
||||||
public function addressbookDelete(string $username, string $id, TranslatorInterface $trans)
|
public function addressbookDelete(ManagerRegistry $doctrine, string $username, string $id, TranslatorInterface $trans)
|
||||||
{
|
{
|
||||||
$addressbook = $this->get('doctrine')->getRepository(AddressBook::class)->findOneById($id);
|
$addressbook = $doctrine->getRepository(AddressBook::class)->findOneById($id);
|
||||||
if (!$addressbook) {
|
if (!$addressbook) {
|
||||||
throw $this->createNotFoundException('Address Book not found');
|
throw $this->createNotFoundException('Address Book not found');
|
||||||
}
|
}
|
||||||
|
|
||||||
$entityManager = $this->get('doctrine')->getManager();
|
$entityManager = $doctrine->getManager();
|
||||||
|
|
||||||
foreach ($addressbook->getCards() ?? [] as $card) {
|
foreach ($addressbook->getCards() ?? [] as $card) {
|
||||||
$entityManager->remove($card);
|
$entityManager->remove($card);
|
||||||
|
@ -144,9 +144,9 @@ class DAVController extends AbstractController
|
|||||||
private function initServer()
|
private function initServer()
|
||||||
{
|
{
|
||||||
// Get the PDO Connection of type PDO
|
// Get the PDO Connection of type PDO
|
||||||
$pdo = $this->em->getConnection()->getWrappedConnection();
|
$pdo = $this->em->getConnection()->getNativeConnection();
|
||||||
if (!($pdo instanceof PDO)) {
|
if (!($pdo instanceof PDO)) {
|
||||||
$pdo = $pdo->getWrappedConnection();
|
$pdo = $pdo->getNativeConnection();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -58,7 +58,7 @@ class AdminUser implements UserInterface
|
|||||||
return $this->username;
|
return $this->username;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getUserIdentifier()
|
public function getUserIdentifier(): string
|
||||||
{
|
{
|
||||||
return $this->username;
|
return $this->username;
|
||||||
}
|
}
|
||||||
|
@ -28,6 +28,11 @@ class AdminUserProvider implements UserProviderInterface
|
|||||||
throw new \Exception('Not implemented, because not needed');
|
throw new \Exception('Not implemented, because not needed');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function loadUserByIdentifier(string $identifier): UserInterface
|
||||||
|
{
|
||||||
|
throw new \Exception('Not implemented, because not needed');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Refreshes the user after being reloaded from the session.
|
* Refreshes the user after being reloaded from the session.
|
||||||
*
|
*
|
||||||
@ -55,7 +60,7 @@ class AdminUserProvider implements UserProviderInterface
|
|||||||
*
|
*
|
||||||
* @param mixed $class
|
* @param mixed $class
|
||||||
*/
|
*/
|
||||||
public function supportsClass($class)
|
public function supportsClass($class): bool
|
||||||
{
|
{
|
||||||
return AdminUser::class === $class;
|
return AdminUser::class === $class;
|
||||||
}
|
}
|
||||||
|
@ -35,13 +35,13 @@ class LoginFormAuthenticator extends AbstractFormLoginAuthenticator
|
|||||||
$this->adminPassword = $adminPassword;
|
$this->adminPassword = $adminPassword;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function supports(Request $request)
|
public function supports(Request $request): bool
|
||||||
{
|
{
|
||||||
return 'app_login' === $request->attributes->get('_route')
|
return 'app_login' === $request->attributes->get('_route')
|
||||||
&& $request->isMethod('POST');
|
&& $request->isMethod('POST');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getCredentials(Request $request)
|
public function getCredentials(Request $request): mixed
|
||||||
{
|
{
|
||||||
$credentials = [
|
$credentials = [
|
||||||
'username' => $request->request->get('username'),
|
'username' => $request->request->get('username'),
|
||||||
@ -56,7 +56,7 @@ class LoginFormAuthenticator extends AbstractFormLoginAuthenticator
|
|||||||
return $credentials;
|
return $credentials;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getUser($credentials, UserProviderInterface $userProvider)
|
public function getUser($credentials, UserProviderInterface $userProvider): ?UserInterface
|
||||||
{
|
{
|
||||||
$token = new CsrfToken('authenticate', $credentials['csrf_token']);
|
$token = new CsrfToken('authenticate', $credentials['csrf_token']);
|
||||||
if (!$this->csrfTokenManager->isTokenValid($token)) {
|
if (!$this->csrfTokenManager->isTokenValid($token)) {
|
||||||
@ -71,12 +71,12 @@ class LoginFormAuthenticator extends AbstractFormLoginAuthenticator
|
|||||||
return new AdminUser($this->adminLogin, $this->adminPassword);
|
return new AdminUser($this->adminLogin, $this->adminPassword);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function checkCredentials($credentials, UserInterface $user)
|
public function checkCredentials($credentials, UserInterface $user): bool
|
||||||
{
|
{
|
||||||
return $user->getPassword() === $credentials['password'];
|
return $user->getPassword() === $credentials['password'];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function onAuthenticationSuccess(Request $request, TokenInterface $token, $providerKey)
|
public function onAuthenticationSuccess(Request $request, TokenInterface $token, $providerKey): ?Response
|
||||||
{
|
{
|
||||||
if ($targetPath = $this->getTargetPath($request->getSession(), $providerKey)) {
|
if ($targetPath = $this->getTargetPath($request->getSession(), $providerKey)) {
|
||||||
return new RedirectResponse($targetPath);
|
return new RedirectResponse($targetPath);
|
||||||
@ -85,7 +85,7 @@ class LoginFormAuthenticator extends AbstractFormLoginAuthenticator
|
|||||||
return new RedirectResponse($this->urlGenerator->generate('dashboard'));
|
return new RedirectResponse($this->urlGenerator->generate('dashboard'));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getLoginUrl()
|
protected function getLoginUrl(): string
|
||||||
{
|
{
|
||||||
return $this->urlGenerator->generate('app_login');
|
return $this->urlGenerator->generate('app_login');
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,7 @@ final class BasicAuth extends AbstractBasic
|
|||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
protected function validateUserPass($username, $password)
|
protected function validateUserPass($username, $password): bool
|
||||||
{
|
{
|
||||||
$user = $this->userRepository->findOneByUsername($username);
|
$user = $this->userRepository->findOneByUsername($username);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user