work on users manager
This commit is contained in:
parent
b77ce36b99
commit
c49045bbe7
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
namespace App\Controller;
|
namespace App\Controller;
|
||||||
|
|
||||||
|
use App\Entity\Business;
|
||||||
use App\Entity\ChangeReport;
|
use App\Entity\ChangeReport;
|
||||||
use App\Entity\User;
|
use App\Entity\User;
|
||||||
use App\Service\Jdate;
|
use App\Service\Jdate;
|
||||||
|
@ -14,8 +15,11 @@ use Symfony\Component\Console\Input\ArrayInput;
|
||||||
use Symfony\Component\Console\Output\BufferedOutput;
|
use Symfony\Component\Console\Output\BufferedOutput;
|
||||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
use Symfony\Component\HttpKernel\KernelInterface;
|
use Symfony\Component\HttpKernel\KernelInterface;
|
||||||
|
use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
|
||||||
use Symfony\Component\Routing\Annotation\Route;
|
use Symfony\Component\Routing\Annotation\Route;
|
||||||
|
use Symfony\Component\Security\Http\Attribute\CurrentUser;
|
||||||
|
|
||||||
class AdminController extends AbstractController
|
class AdminController extends AbstractController
|
||||||
{
|
{
|
||||||
|
@ -63,16 +67,23 @@ class AdminController extends AbstractController
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
#[Route('/api/admin/users/list', name: 'admin_users_list')]
|
||||||
* @throws Exception
|
public function admin_users_list(Jdate $jdate,#[CurrentUser] ?User $user,UserPasswordHasherInterface $userPasswordHasher, EntityManagerInterface $entityManager,Request $request): Response
|
||||||
*/
|
|
||||||
#[Route('/api/admin/users/list', name: 'app_admin_users_list')]
|
|
||||||
public function app_admin_users_list(Provider $provider,EntityManagerInterface $entityManager): JsonResponse
|
|
||||||
{
|
{
|
||||||
$users = $entityManager->getRepository(User::class)->findAll();
|
$users = $entityManager->getRepository(User::class)->findBy([],['id'=>'DESC']);
|
||||||
return $this->json($provider->ArrayEntity2ArrayJustIncludes($users,[
|
$resp = [];
|
||||||
|
foreach ($users as $user) {
|
||||||
]));
|
$temp =[];
|
||||||
|
$temp['id'] = $user->getId();
|
||||||
|
$temp['email'] = $user->getEmail();
|
||||||
|
$temp['mobile'] = $user->getMobile();
|
||||||
|
$temp['fullname'] = $user->getFullName();
|
||||||
|
$temp['status'] = $user->isActive();
|
||||||
|
$temp['dateRegister'] = $jdate->jdate('Y/n/d',$user->getDateRegister());
|
||||||
|
$temp['bidCount'] = count($entityManager->getRepository(Business::class)->findBy(['owner'=>$user]));
|
||||||
|
$resp[] = $temp;
|
||||||
|
}
|
||||||
|
return $this->json($resp);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[Route('/api/admin/reportchange/lists', name: 'app_admin_reportchange_list')]
|
#[Route('/api/admin/reportchange/lists', name: 'app_admin_reportchange_list')]
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
namespace App\Controller;
|
namespace App\Controller;
|
||||||
|
|
||||||
|
use App\Entity\Person;
|
||||||
use App\Entity\Shareholder;
|
use App\Entity\Shareholder;
|
||||||
use App\Service\Access;
|
use App\Service\Access;
|
||||||
use App\Service\Log;
|
use App\Service\Log;
|
||||||
|
@ -25,10 +26,65 @@ class ShareHolderController extends AbstractController
|
||||||
$resp = [];
|
$resp = [];
|
||||||
foreach($datas as $data){
|
foreach($datas as $data){
|
||||||
$temp = [];
|
$temp = [];
|
||||||
|
$temp['id']= $data->getId();
|
||||||
$temp['person'] = ['id'=>$data->getPerson()->getId(),'nikename'=>$data->getPerson()->getNikename()];
|
$temp['person'] = ['id'=>$data->getPerson()->getId(),'nikename'=>$data->getPerson()->getNikename()];
|
||||||
$temp['percent'] = $data->getPercent();
|
$temp['percent'] = $data->getPercent();
|
||||||
$resp[] = $temp;
|
$resp[] = $temp;
|
||||||
}
|
}
|
||||||
return $this->json($resp);
|
return $this->json($resp);
|
||||||
}
|
}
|
||||||
|
#[Route('/api/shareholders/insert', name: 'app_shareholders_insert')]
|
||||||
|
public function app_shareholders_insert(Request $request,Access $access,Log $log,EntityManagerInterface $entityManager): JsonResponse
|
||||||
|
{
|
||||||
|
$acc = $access->hasRole('shareholder');
|
||||||
|
if(!$acc)
|
||||||
|
throw $this->createAccessDeniedException();
|
||||||
|
$params = [];
|
||||||
|
if ($content = $request->getContent()) {
|
||||||
|
$params = json_decode($content, true);
|
||||||
|
}
|
||||||
|
if(!array_key_exists('person',$params) && !array_key_exists('count',$params))
|
||||||
|
return $this->json(['result'=>-1]);
|
||||||
|
$person = $entityManager->getRepository(Person::class)->find($params['person']);
|
||||||
|
if($person){
|
||||||
|
if($person->getBid()->getId() != $acc['bid']->getId()){
|
||||||
|
throw $this->createAccessDeniedException();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$item = $entityManager->getRepository(Shareholder::class)->findOneBy(['person'=>$person]);
|
||||||
|
if($item){
|
||||||
|
$item->setPercent($item->getPercent() + (int)$params['count']);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$item = new Shareholder();
|
||||||
|
$item->setBid($acc['bid']);
|
||||||
|
$item->setPerson($person);
|
||||||
|
$item->setPercent((int)$params['count']);
|
||||||
|
}
|
||||||
|
$entityManager->persist($item);
|
||||||
|
$entityManager->flush();
|
||||||
|
$log->insert('سهامداران','تعداد ' . $params['count'] . ' سهم به نام ' . $person->getName() . ' افزوده/ویرایش شد.',$this->getUser(),$acc['bid']);
|
||||||
|
return $this->json(['result'=>1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw $this->createNotFoundException();
|
||||||
|
}
|
||||||
|
|
||||||
|
#[Route('/api/shareholders/remove/{id}', name: 'app_shareholders_remove')]
|
||||||
|
public function app_shareholders_remove(string $id,Request $request,Access $access,Log $log,EntityManagerInterface $entityManager): JsonResponse
|
||||||
|
{
|
||||||
|
$acc = $access->hasRole('shareholder');
|
||||||
|
if(!$acc)
|
||||||
|
throw $this->createAccessDeniedException();
|
||||||
|
$shareholder = $entityManager->getRepository(Shareholder::class)->find($id);
|
||||||
|
if($shareholder){
|
||||||
|
if($shareholder->getBid()->getId() == $acc['bid']->getId()){
|
||||||
|
$log->insert('سهامداران','سهامدار با نام ' . $shareholder->getPerson()->getNikename() . ' حذف شد. ',$this->getUser(),$acc['bid']);
|
||||||
|
$entityManager->remove($shareholder);
|
||||||
|
$entityManager->flush();
|
||||||
|
return $this->json(['result'=>1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw $this->createNotFoundException();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue