| Current Path : /var/www/v3.cesa.co.za/src/UserBundle/Admin/ |
| Current File : /var/www/v3.cesa.co.za/src/UserBundle/Admin/UserOldAdmin.php |
<?php
namespace App\UserBundle\Admin;
use App\UserBundle\Entity\UserOld;
use App\UserBundle\Service\Echasl23UserService;
use Sonata\AdminBundle\Admin\AbstractAdmin;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Form\FormMapper;
use Sonata\AdminBundle\Show\ShowMapper;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
/**
* Sonata admin for PHPMaker echasl23 users.
*/
class UserOldAdmin extends AbstractAdmin
{
private ?Echasl23UserService $echasl23UserService = null;
public function setEchasl23UserService(Echasl23UserService $echasl23UserService): void
{
$this->echasl23UserService = $echasl23UserService;
}
protected function generateBaseRouteName(bool $isChildAdmin = false): string
{
return 'echasl23_users';
}
protected function generateBaseRoutePattern(bool $isChildAdmin = false): string
{
return 'echasl23-users';
}
protected function configureFormFields(FormMapper $form): void
{
$isCreate = !$this->getSubject() || null === $this->getSubject()->getId();
$form
->with('Account')
->add('username', TextType::class, ['label' => 'Username'])
->add('plainPassword', PasswordType::class, [
'label' => 'Password',
'required' => $isCreate,
'help' => $isCreate ? null : 'Leave blank to keep the current password.',
])
->add('email_address', TextType::class, ['label' => 'Email', 'required' => false])
->add('access_level', IntegerType::class, ['label' => 'Access level'])
->add('activated', CheckboxType::class, ['label' => 'Active', 'required' => false])
->end();
}
protected function configureDatagridFilters(DatagridMapper $filter): void
{
$filter
->add('username')
->add('email_address')
->add('access_level')
->add('activated');
}
protected function configureListFields(ListMapper $list): void
{
$list
->addIdentifier('username')
->add('email_address', null, ['label' => 'Email'])
->add('access_level', null, ['label' => 'Level'])
->add('activated', null, ['label' => 'Active'])
->add('pwdchanged', null, ['label' => 'Password changed'])
->add(ListMapper::NAME_ACTIONS, null, [
'actions' => [
'show' => [],
'edit' => [],
'delete' => [],
],
]);
}
protected function configureShowFields(ShowMapper $show): void
{
$show
->add('username')
->add('email_address', null, ['label' => 'Email'])
->add('access_level', null, ['label' => 'Level'])
->add('activated', null, ['label' => 'Active'])
->add('pwdchanged', null, ['label' => 'Password changed']);
}
/**
* @param UserOld $object
*/
protected function prePersist(object $object): void
{
$this->persistPassword($object);
}
/**
* @param UserOld $object
*/
protected function preUpdate(object $object): void
{
$this->persistPassword($object);
}
private function persistPassword(UserOld $user): void
{
$this->echasl23UserService?->applyPlainPassword($user, $user->getPlainPassword());
$user->setPlainPassword(null);
$user->setResolvedRoles($this->echasl23UserService?->resolveRoles($user) ?? ['NONE']);
}
}