mirror of
https://github.com/jbcr/core.git
synced 2026-04-22 16:18:30 +02:00
Rename Finder to Filemanager, split users
This commit is contained in:
@@ -157,7 +157,7 @@ class MenuBuilder
|
||||
]);
|
||||
|
||||
$menu['Configuration']->addChild('All configuration files', [
|
||||
'uri' => $this->urlGenerator->generate('bolt_finder', ['area' => 'config']),
|
||||
'uri' => $this->urlGenerator->generate('bolt_filemanager', ['area' => 'config']),
|
||||
'extras' => [
|
||||
'name' => $t->trans('caption.all_configuration_files'),
|
||||
'icon' => 'fa-cogs',
|
||||
@@ -235,7 +235,7 @@ class MenuBuilder
|
||||
]]);
|
||||
|
||||
$menu['File Management']->addChild('Uploaded files', [
|
||||
'uri' => $this->urlGenerator->generate('bolt_finder', ['area' => 'files']),
|
||||
'uri' => $this->urlGenerator->generate('bolt_filemanager', ['area' => 'files']),
|
||||
'extras' => [
|
||||
'name' => $t->trans('caption.uploaded_files'),
|
||||
'icon' => 'fa-archive',
|
||||
@@ -243,7 +243,7 @@ class MenuBuilder
|
||||
]);
|
||||
|
||||
$menu['File Management']->addChild('View/edit Templates', [
|
||||
'uri' => $this->urlGenerator->generate('bolt_finder', ['area' => 'themes']),
|
||||
'uri' => $this->urlGenerator->generate('bolt_filemanager', ['area' => 'themes']),
|
||||
'extras' => [
|
||||
'name' => $t->trans('caption.view_edit_templates'),
|
||||
'icon' => 'fa-scroll',
|
||||
|
||||
+8
-3
@@ -12,6 +12,7 @@ use Bolt\Repository\MediaRepository;
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
|
||||
use Symfony\Component\Finder\Finder;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Routing\Annotation\Route;
|
||||
use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface;
|
||||
use Webmozart\PathUtil\Path;
|
||||
@@ -21,7 +22,7 @@ use Webmozart\PathUtil\Path;
|
||||
*
|
||||
* @Security("has_role('ROLE_ADMIN')")
|
||||
*/
|
||||
class FinderController extends BaseController
|
||||
class FilemanagerController extends BaseController
|
||||
{
|
||||
/** @var Areas */
|
||||
private $areas;
|
||||
@@ -34,15 +35,19 @@ class FinderController extends BaseController
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/finder/{area}", name="bolt_finder", methods={"GET"})
|
||||
* @Route("/filemanager/{area}", name="bolt_filemanager", methods={"GET"})
|
||||
*
|
||||
* @param $area
|
||||
* @param Request $request
|
||||
* @param MediaRepository $mediaRepository
|
||||
*
|
||||
* @throws \Twig_Error_Loader
|
||||
* @throws \Twig_Error_Runtime
|
||||
* @throws \Twig_Error_Syntax
|
||||
*
|
||||
* @return \Symfony\Component\HttpFoundation\Response
|
||||
*/
|
||||
public function finder($area, Request $request, MediaRepository $mediaRepository)
|
||||
public function filemanager($area, Request $request, MediaRepository $mediaRepository): Response
|
||||
{
|
||||
$path = $request->query->get('path');
|
||||
if (!str::endsWith($path, '/')) {
|
||||
@@ -0,0 +1,113 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Bolt\Controller\Backend;
|
||||
|
||||
use Bolt\Controller\BaseController;
|
||||
use Doctrine\Common\Persistence\ObjectManager;
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
|
||||
use Symfony\Component\HttpFoundation\RedirectResponse;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Routing\Annotation\Route;
|
||||
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
|
||||
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
|
||||
|
||||
/**
|
||||
* Class UserController.
|
||||
*
|
||||
* @Security("has_role('ROLE_ADMIN')")
|
||||
*/
|
||||
class ProfileController extends BaseController
|
||||
{
|
||||
/**
|
||||
* @Route("/profile-edit", methods={"GET"}, name="bolt_profile_edit")
|
||||
*
|
||||
* @param Request $request
|
||||
*
|
||||
* @throws \Twig_Error_Loader
|
||||
* @throws \Twig_Error_Runtime
|
||||
* @throws \Twig_Error_Syntax
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function profileEdit(Request $request): Response
|
||||
{
|
||||
$user = $this->getUser();
|
||||
|
||||
return $this->renderTemplate('users/edit.html.twig', [
|
||||
'usertitle' => $user->getFullName(),
|
||||
'user' => $user,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/profile-edit", methods={"POST"}, name="bolt_profile_edit_post")
|
||||
*
|
||||
* @param Request $request
|
||||
* @param UrlGeneratorInterface $urlGenerator
|
||||
* @param ObjectManager $manager
|
||||
* @param UserPasswordEncoderInterface $encoder
|
||||
*
|
||||
* @throws \Twig_Error_Loader
|
||||
* @throws \Twig_Error_Runtime
|
||||
* @throws \Twig_Error_Syntax
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function profileEditPost(Request $request, UrlGeneratorInterface $urlGenerator, ObjectManager $manager, UserPasswordEncoderInterface $encoder): Response
|
||||
{
|
||||
$user = $this->getUser();
|
||||
$userTitle = $user->getFullName();
|
||||
$url = $urlGenerator->generate('bolt_profile_edit');
|
||||
$locale = current($request->get('locale'));
|
||||
$newPassword = $request->get('password');
|
||||
|
||||
$user->setFullName($request->get('fullName'));
|
||||
$user->setEmail($request->get('email'));
|
||||
$user->setLocale($locale);
|
||||
$user->setbackendTheme($request->get('user')['backendTheme']);
|
||||
|
||||
$hasError = false;
|
||||
|
||||
$usernameValidateOptions = [
|
||||
'options' => [
|
||||
'min_range' => 1,
|
||||
],
|
||||
];
|
||||
|
||||
// Validate username
|
||||
if (!filter_var(mb_strlen($user->getFullName()), FILTER_VALIDATE_INT, $usernameValidateOptions)) {
|
||||
$this->addFlash('danger', 'user.not_valid_username');
|
||||
$hasError = true;
|
||||
}
|
||||
|
||||
// Validate password
|
||||
if (!empty($newPassword) && mb_strlen($newPassword) < 6) {
|
||||
$this->addFlash('danger', 'user.not_valid_password');
|
||||
$hasError = true;
|
||||
} elseif (!empty($newPassword) && mb_strlen($newPassword) > 6) {
|
||||
$user->setPassword($encoder->encodePassword($user, $newPassword));
|
||||
}
|
||||
|
||||
// Validate email
|
||||
if (!filter_var($user->getEmail(), FILTER_VALIDATE_EMAIL)) {
|
||||
$this->addFlash('danger', 'user.not_valid_email');
|
||||
$hasError = true;
|
||||
}
|
||||
|
||||
if ($hasError) {
|
||||
return $this->renderTemplate('users/edit.html.twig', [
|
||||
'usertitle' => $userTitle,
|
||||
'user' => $user,
|
||||
]);
|
||||
}
|
||||
|
||||
$manager->flush();
|
||||
|
||||
$request->getSession()->set('_locale', $locale);
|
||||
|
||||
return new RedirectResponse($url);
|
||||
}
|
||||
}
|
||||
@@ -5,14 +5,9 @@ declare(strict_types=1);
|
||||
namespace Bolt\Controller\Backend;
|
||||
|
||||
use Bolt\Controller\BaseController;
|
||||
use Doctrine\Common\Persistence\ObjectManager;
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
|
||||
use Symfony\Component\HttpFoundation\RedirectResponse;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Routing\Annotation\Route;
|
||||
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
|
||||
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
|
||||
|
||||
/**
|
||||
* Class UserController.
|
||||
@@ -24,98 +19,13 @@ class UserController extends BaseController
|
||||
/**
|
||||
* @Route("/users", name="bolt_users")
|
||||
*/
|
||||
public function users()
|
||||
public function users(): Response
|
||||
{
|
||||
return $this->renderTemplate('pages/about.html.twig');
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/profile-edit", methods={"GET"}, name="bolt_profile_edit")
|
||||
*
|
||||
* @param Request $request
|
||||
*
|
||||
* @throws \Twig_Error_Loader
|
||||
* @throws \Twig_Error_Runtime
|
||||
* @throws \Twig_Error_Syntax
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function edit(Request $request): Response
|
||||
{
|
||||
$user = $this->getUser();
|
||||
|
||||
return $this->renderTemplate('users/edit.html.twig', [
|
||||
'usertitle' => $user->getFullName(),
|
||||
'user' => $user,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/profile-edit", methods={"POST"}, name="bolt_profile_edit_post")
|
||||
*
|
||||
* @param Request $request
|
||||
* @param UrlGeneratorInterface $urlGenerator
|
||||
* @param ObjectManager $manager
|
||||
* @param UserPasswordEncoderInterface $encoder
|
||||
*
|
||||
* @throws \Twig_Error_Loader
|
||||
* @throws \Twig_Error_Runtime
|
||||
* @throws \Twig_Error_Syntax
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function edit_post(Request $request, UrlGeneratorInterface $urlGenerator, ObjectManager $manager, UserPasswordEncoderInterface $encoder): Response
|
||||
{
|
||||
$user = $this->getUser();
|
||||
$userTitle = $user->getFullName();
|
||||
$url = $urlGenerator->generate('bolt_profile_edit');
|
||||
$locale = current($request->get('locale'));
|
||||
$newPassword = $request->get('password');
|
||||
|
||||
$user->setFullName($request->get('fullName'));
|
||||
$user->setEmail($request->get('email'));
|
||||
$user->setLocale($locale);
|
||||
$user->setbackendTheme($request->get('user')['backendTheme']);
|
||||
|
||||
$hasError = false;
|
||||
|
||||
$usernameValidateOptions = [
|
||||
'options' => [
|
||||
'min_range' => 1,
|
||||
],
|
||||
$twigVars = [
|
||||
'title' => 'Users & Permissions',
|
||||
'subtitle' => 'To edit users and their permissions',
|
||||
];
|
||||
|
||||
// Validate username
|
||||
if (!filter_var(mb_strlen($user->getFullName()), FILTER_VALIDATE_INT, $usernameValidateOptions)) {
|
||||
$this->addFlash('danger', 'user.not_valid_username');
|
||||
$hasError = true;
|
||||
}
|
||||
|
||||
// Validate password
|
||||
if (!empty($newPassword) && mb_strlen($newPassword) < 6) {
|
||||
$this->addFlash('danger', 'user.not_valid_password');
|
||||
$hasError = true;
|
||||
} elseif (!empty($newPassword) && mb_strlen($newPassword) > 6) {
|
||||
$user->setPassword($encoder->encodePassword($user, $newPassword));
|
||||
}
|
||||
|
||||
// Validate email
|
||||
if (!filter_var($user->getEmail(), FILTER_VALIDATE_EMAIL)) {
|
||||
$this->addFlash('danger', 'user.not_valid_email');
|
||||
$hasError = true;
|
||||
}
|
||||
|
||||
if ($hasError) {
|
||||
return $this->renderTemplate('users/edit.html.twig', [
|
||||
'usertitle' => $userTitle,
|
||||
'user' => $user,
|
||||
]);
|
||||
}
|
||||
|
||||
$manager->flush();
|
||||
|
||||
$request->getSession()->set('_locale', $locale);
|
||||
|
||||
return new RedirectResponse($url);
|
||||
return $this->renderTemplate('pages/placeholder.html.twig', $twigVars);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<td><i class="fas fa-folder-open"></i></td>
|
||||
<td>
|
||||
<b>
|
||||
<a href="{{ path('bolt_finder', {'area': area, 'path': parent }) }}">
|
||||
<a href="{{ path('bolt_filemanager', {'area': area, 'path': parent }) }}">
|
||||
../
|
||||
</a>
|
||||
</b>
|
||||
@@ -29,7 +29,7 @@
|
||||
<td>
|
||||
<b>
|
||||
{% set dirname = path ~ directory.getRelativePathname() %}
|
||||
<a href="{{ path('bolt_finder', {'area': area, 'path': dirname }) }}">
|
||||
<a href="{{ path('bolt_filemanager', {'area': area, 'path': dirname }) }}">
|
||||
{{ directory.getRelativePathname }}/
|
||||
</a>
|
||||
</b>
|
||||
|
||||
Reference in New Issue
Block a user