Complete profile image, password update functionality
This commit is contained in:
		@@ -12,6 +12,7 @@ use App\Form\UserFormType;
 | 
				
			|||||||
use App\Libs\Breadcrumb;
 | 
					use App\Libs\Breadcrumb;
 | 
				
			||||||
use App\Libs\NavList;
 | 
					use App\Libs\NavList;
 | 
				
			||||||
use App\Repository\UserRepository;
 | 
					use App\Repository\UserRepository;
 | 
				
			||||||
 | 
					use DateTime;
 | 
				
			||||||
use Doctrine\ORM\EntityManagerInterface;
 | 
					use Doctrine\ORM\EntityManagerInterface;
 | 
				
			||||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
 | 
					use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
 | 
				
			||||||
use Symfony\Component\HttpFoundation\Request;
 | 
					use Symfony\Component\HttpFoundation\Request;
 | 
				
			||||||
@@ -145,6 +146,7 @@ class AdminController extends AbstractController
 | 
				
			|||||||
                 ->setRate($form->get('rate')->getData())
 | 
					                 ->setRate($form->get('rate')->getData())
 | 
				
			||||||
                 ->setLevel($form->get('level')->getData())
 | 
					                 ->setLevel($form->get('level')->getData())
 | 
				
			||||||
                 ->setCompany($admin->getCompany())
 | 
					                 ->setCompany($admin->getCompany())
 | 
				
			||||||
 | 
					                 ->setPasswordChanged(new DateTime())
 | 
				
			||||||
            ;
 | 
					            ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if ($form->get('imageName')->getData()) {
 | 
					            if ($form->get('imageName')->getData()) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,6 +6,7 @@ use App\Entity\Messages;
 | 
				
			|||||||
use App\Entity\User;
 | 
					use App\Entity\User;
 | 
				
			||||||
use App\Libs\Breadcrumb;
 | 
					use App\Libs\Breadcrumb;
 | 
				
			||||||
use App\Libs\NavList;
 | 
					use App\Libs\NavList;
 | 
				
			||||||
 | 
					use DateTime;
 | 
				
			||||||
use Doctrine\ORM\EntityManagerInterface;
 | 
					use Doctrine\ORM\EntityManagerInterface;
 | 
				
			||||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
 | 
					use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
 | 
				
			||||||
use Symfony\Component\Form\Extension\Core\Type\EmailType;
 | 
					use Symfony\Component\Form\Extension\Core\Type\EmailType;
 | 
				
			||||||
@@ -135,6 +136,7 @@ class DefaultController extends AbstractController
 | 
				
			|||||||
                        $plainPassword
 | 
					                        $plainPassword
 | 
				
			||||||
                    )
 | 
					                    )
 | 
				
			||||||
                );
 | 
					                );
 | 
				
			||||||
 | 
					                $user->setPasswordChanged(new DateTime())
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if ($form['imageName']->getData()) {
 | 
					            if ($form['imageName']->getData()) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,10 +14,13 @@ use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
 | 
				
			|||||||
use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
 | 
					use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
 | 
				
			||||||
use Symfony\Component\Security\Core\User\UserInterface;
 | 
					use Symfony\Component\Security\Core\User\UserInterface;
 | 
				
			||||||
use Symfony\Component\Uid\Uuid;
 | 
					use Symfony\Component\Uid\Uuid;
 | 
				
			||||||
 | 
					use Vich\UploaderBundle\Entity\File;
 | 
				
			||||||
 | 
					use Vich\UploaderBundle\Mapping\Annotation as Vich;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#[ORM\Entity(repositoryClass: UserRepository::class)]
 | 
					#[ORM\Entity(repositoryClass: UserRepository::class)]
 | 
				
			||||||
#[ORM\UniqueConstraint(name: 'UNIQ_IDENTIFIER_USERNAME', fields: ['username'])]
 | 
					#[ORM\UniqueConstraint(name: 'UNIQ_IDENTIFIER_USERNAME', fields: ['username'])]
 | 
				
			||||||
#[UniqueEntity(fields: ['username'], message: 'There is already an account with this username')]
 | 
					#[UniqueEntity(fields: ['username'], message: 'There is already an account with this username')]
 | 
				
			||||||
 | 
					#[Vich\Uploadable]
 | 
				
			||||||
class User implements UserInterface, PasswordAuthenticatedUserInterface
 | 
					class User implements UserInterface, PasswordAuthenticatedUserInterface
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    #[ORM\Id]
 | 
					    #[ORM\Id]
 | 
				
			||||||
@@ -80,6 +83,15 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface
 | 
				
			|||||||
    #[ORM\OneToMany(targetEntity: UserCase::class, mappedBy: 'user')]
 | 
					    #[ORM\OneToMany(targetEntity: UserCase::class, mappedBy: 'user')]
 | 
				
			||||||
    private Collection $userCases;
 | 
					    private Collection $userCases;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    #[Vich\UploadableField(mapping: 'profile_image', fileNameProperty: 'imageName', size: 'size', mimeType: 'mimeType', originalName: 'originalName', dimensions: 'dimensions')]
 | 
				
			||||||
 | 
					    private ?File $imageFile = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    #[ORM\Column(type: Types::STRING, length: 255, nullable: true)]
 | 
				
			||||||
 | 
					    private ?string $imageName = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    #[ORM\Column(type: Types::DATETIME_MUTABLE)]
 | 
				
			||||||
 | 
					    private ?\DateTimeInterface $passwordChanged = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public function __construct()
 | 
					    public function __construct()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        $this->userCases = new ArrayCollection();
 | 
					        $this->userCases = new ArrayCollection();
 | 
				
			||||||
@@ -351,4 +363,40 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        return $jobs;
 | 
					        return $jobs;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public function getImageFile(): ?File
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return $this->imageFile;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public function setImageFile(?File $imageFile): static
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $this->imageFile = $imageFile;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return $this;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public function getImageName(): ?string
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return $this->imageName;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public function setImageName(?string $imageName): static
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $this->imageName = $imageName;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return $this;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public function getPasswordChanged(): ?\DateTimeInterface
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return $this->passwordChanged;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public function setPasswordChanged(\DateTimeInterface $passwordChanged): static
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $this->passwordChanged = $passwordChanged;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return $this;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user