Rename Finder to Filemanager, split users

This commit is contained in:
Bob den Otter
2018-11-17 17:39:10 +01:00
parent 0004093260
commit 57ea474da7
5 changed files with 131 additions and 103 deletions
+3 -3
View File
@@ -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',
@@ -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 -95
View File
@@ -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);
}
}
+2 -2
View File
@@ -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>