Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 1 | Rev 1984 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 1 Rev 1979
Línea 43... Línea 43...
43
use PayPalCheckoutSdk\Orders\OrdersCreateRequest;
43
use PayPalCheckoutSdk\Orders\OrdersCreateRequest;
44
use PayPalHttp\HttpException;
44
use PayPalHttp\HttpException;
45
use LeadersLinked\Mapper\UserProviderMapper;
45
use LeadersLinked\Mapper\UserProviderMapper;
46
use LeadersLinked\Model\UserProvider;
46
use LeadersLinked\Model\UserProvider;
47
use LeadersLinked\Model\UserPassword;
47
use LeadersLinked\Model\UserPassword;
-
 
48
use LeadersLinked\Model\UserDeleted;
-
 
49
use LeadersLinked\Mapper\UserDeletedMapper;
-
 
50
use LeadersLinked\Model\UserType;
-
 
51
use LeadersLinked\Model\User;
-
 
52
use LeadersLinked\Library\QueueEmail;
-
 
53
use LeadersLinked\Mapper\EmailTemplateMapper;
-
 
54
use LeadersLinked\Model\EmailTemplate;
Línea 48... Línea 55...
48
 
55
 
49
class AccountSettingController extends AbstractActionController
56
class AccountSettingController extends AbstractActionController
50
{
57
{
51
    /**
58
    /**
Línea 1507... Línea 1514...
1507
                'success' => false,
1514
                'success' => false,
1508
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
1515
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
1509
            ]);
1516
            ]);
1510
        }
1517
        }
1511
    }
1518
    }
-
 
1519
    
-
 
1520
    public function deleteAccountAction()
-
 
1521
    {
-
 
1522
        
-
 
1523
  
-
 
1524
        $currentUserPlugin = $this->plugin('currentUserPlugin');
-
 
1525
        $user = $currentUserPlugin->getUser();
-
 
1526
        
-
 
1527
  
-
 
1528
        
-
 
1529
        $request = $this->getRequest();
-
 
1530
        
-
 
1531
        if($request->isGet()) {
-
 
1532
            
-
 
1533
            $this->sendEmailDeleteAccountKey($user);
-
 
1534
            
-
 
1535
            
-
 
1536
            return new JsonModel([
-
 
1537
                'success' => true,
-
 
1538
                'data' => [
-
 
1539
                    'message' => 'LABEL_DELETE_ACCOUNT_WE_HAVE_SENT_A_CONFIRMATION_CODE'
-
 
1540
                ]
-
 
1541
            ]);
-
 
1542
            
-
 
1543
        } else  if($request->isPost()) {
-
 
1544
            
-
 
1545
            $code = $this->params()->fromPost('code');
-
 
1546
            if(empty($code) && $code != $user->delete_account_key) {
-
 
1547
                
-
 
1548
                $this->sendEmailDeleteAccountKey($user);
-
 
1549
                
-
 
1550
                return new JsonModel([
-
 
1551
                    'success' => false,
-
 
1552
                    'data' => [
-
 
1553
                        'message' => 'ERROR_DELETE_ACCOUNT_CONFIRMATION_CODE_IS_WRONG'
-
 
1554
                    ]
-
 
1555
                ]);
-
 
1556
            }
-
 
1557
            
-
 
1558
            $delete_account_generated_on = strtotime($user->delete_account_generated_on);
-
 
1559
            $expiry_time = $delete_account_generated_on + $this->config['leaderslinked.security.delete_account_expired'];
-
 
1560
            
-
 
1561
            
-
 
1562
            if (time() > $expiry_time) {
-
 
1563
            
-
 
1564
                $this->sendEmailDeleteAccountKey($user) ;
-
 
1565
                
-
 
1566
                return new JsonModel([
-
 
1567
                    'success' => false,
-
 
1568
                    'data' => [
-
 
1569
                        'message' => 'ERROR_DELETE_ACCOUNT_CONFIRMATION_CODE_EXPIRED'
-
 
1570
                    ]
-
 
1571
                ]);
-
 
1572
                
-
 
1573
                
-
 
1574
            }
-
 
1575
            
-
 
1576
            $userDeleted  = new UserDeleted();
-
 
1577
            $userDeleted->user_id = $user->id;
-
 
1578
            $userDeleted->first_name = $user->first_name;
-
 
1579
            $userDeleted->last_name = $user->last_name;
-
 
1580
            $userDeleted->email = $user->email;
-
 
1581
            $userDeleted->image = $user->image;
-
 
1582
            $userDeleted->phone = $user->phone;
-
 
1583
            $userDeleted->pending = UserDeleted::PENDING_YES;
-
 
1584
            
-
 
1585
            
-
 
1586
            $userDeletedMapper = UserDeletedMapper::getInstance($this->adapter);
-
 
1587
            if ($userDeletedMapper->insert($userDeleted)) {
-
 
1588
                
-
 
1589
                $user->first_name = 'LABEL_DELETE_ACCOUNT_FIRST_NAME';
-
 
1590
                $user->last_name = 'LABEL_DELETE_ACCOUNT_LAST_NAME';
-
 
1591
                $user->email = '-';
-
 
1592
                $user->image = '';
-
 
1593
                $user->usertype_id = UserType::USER_DELETED;
-
 
1594
                $user->status = User::STATUS_DELETED;
-
 
1595
                $user->delete_account_key = '';
-
 
1596
                $user->delete_account_generated_on = '';
-
 
1597
                
-
 
1598
                $userMapper = UserMapper::getInstance($this->adapter);
-
 
1599
                if($userMapper->update($user)) {
-
 
1600
                    
-
 
1601
                    $this->sendEmailDeleteAccountCompleted($user);
-
 
1602
                    
-
 
1603
                    return new JsonModel([
-
 
1604
                        'success' => true,
-
 
1605
                        'data' => [
-
 
1606
                            'message' => 'LABEL_DELETE_ACCOUNT_WE_HAVE_STARTED_DELETING_YOUR_DATA',
-
 
1607
                            'redirect_url' => $this->url()->fromRoute('signout'),
-
 
1608
                        ]
-
 
1609
                    ]);
-
 
1610
                    
-
 
1611
                    
-
 
1612
                } else {
-
 
1613
                    return new JsonModel([
-
 
1614
                        'success' => false,
-
 
1615
                        'data' => [
-
 
1616
                            'message' => $userDeletedMapper->getError()
-
 
1617
                        ]
-
 
1618
                    ]);
-
 
1619
                }
-
 
1620
                
-
 
1621
                
-
 
1622
                
-
 
1623
            } else {
-
 
1624
                return new JsonModel([
-
 
1625
                    'success' => false,
-
 
1626
                    'data' => [
-
 
1627
                        'message' => $userDeletedMapper->getError()
-
 
1628
                    ]
-
 
1629
                ]);
-
 
1630
            }
-
 
1631
            
-
 
1632
            
-
 
1633
            
-
 
1634
            
-
 
1635
            
-
 
1636
        }
-
 
1637
            
-
 
1638
            
-
 
1639
            return new JsonModel([
-
 
1640
                'success' => false,
-
 
1641
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
-
 
1642
            ]);
-
 
1643
    }
-
 
1644
    
-
 
1645
    private function sendEmailDeleteAccountKey($user)
-
 
1646
    {
-
 
1647
        $delete_account_key = Functions::generatePassword(8);
-
 
1648
        
-
 
1649
        $userMapper = UserMapper::getInstance($this->adapter);
-
 
1650
        $userMapper->updateDeleteAccountKey($user->id, $delete_account_key);
-
 
1651
        
-
 
1652
        $emailTemplateMapper = EmailTemplateMapper::getInstance($this->adapter);
-
 
1653
        $emailTemplate = $emailTemplateMapper->fetchOne(EmailTemplate::ID_DELETE_ACCOUNT_CODE);
-
 
1654
        if($emailTemplate) {
-
 
1655
            $arrayCont = [
-
 
1656
                'firstname' => $user->first_name,
-
 
1657
                'lastname'  => $user->last_name,
-
 
1658
                'code'      => $delete_account_key,
-
 
1659
                'link'      => ''
-
 
1660
            ];
-
 
1661
            
-
 
1662
            $email = new QueueEmail($this->adapter);
-
 
1663
            $email->processEmailTemplate($emailTemplate, $arrayCont, $user->email, trim($user->first_name . ' ' . $user->last_name));
-
 
1664
        }
-
 
1665
    }
-
 
1666
    
-
 
1667
    
-
 
1668
    private function sendEmailDeleteAccountCompleted($user)
-
 
1669
    {
-
 
1670
        
-
 
1671
        $emailTemplateMapper = EmailTemplateMapper::getInstance($this->adapter);
-
 
1672
        $emailTemplate = $emailTemplateMapper->fetchOne(EmailTemplate::ID_DELETE_ACCOUNT_COMPLETED);
-
 
1673
        if($emailTemplate) {
-
 
1674
            $arrayCont = [
-
 
1675
                'firstname' => $user->first_name,
-
 
1676
                'lastname'  => $user->last_name,
-
 
1677
                'code'      => '',
-
 
1678
                'link'      => ''
-
 
1679
            ];
-
 
1680
            
-
 
1681
            $email = new QueueEmail($this->adapter);
-
 
1682
            $email->processEmailTemplate($emailTemplate, $arrayCont, $user->email, trim($user->first_name . ' ' . $user->last_name));
-
 
1683
        }
-
 
1684
    }
Línea 1512... Línea 1685...
1512
   
1685