Proyectos de Subversion LeadersLinked - Services

Rev

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

Rev 167 Rev 192
Línea 63... Línea 63...
63
use LeadersLinked\Mapper\IndustryMapper;
63
use LeadersLinked\Mapper\IndustryMapper;
64
use LeadersLinked\Mapper\SurveyTestMapper;
64
use LeadersLinked\Mapper\SurveyTestMapper;
65
use LeadersLinked\Model\SurveyTest;
65
use LeadersLinked\Model\SurveyTest;
66
use LeadersLinked\Mapper\SurveyCampaignMapper;
66
use LeadersLinked\Mapper\SurveyCampaignMapper;
67
use LeadersLinked\Mapper\GroupTypeMapper;
67
use LeadersLinked\Mapper\GroupTypeMapper;
-
 
68
use LeadersLinked\Mapper\FeedMapper;
-
 
69
use LeadersLinked\Model\Feed;
-
 
70
use LeadersLinked\Model\AbuseReport;
-
 
71
use LeadersLinked\Form\AbuseReport\CreateForm;
-
 
72
use LeadersLinked\Model\Post;
-
 
73
use LeadersLinked\Mapper\MessageMapper;
-
 
74
use LeadersLinked\Model\Message;
-
 
75
use LeadersLinked\Mapper\CommentMapper;
-
 
76
use LeadersLinked\Model\Comment;
-
 
77
use LeadersLinked\Mapper\ChatMessageMapper;
-
 
78
use LeadersLinked\Model\ChatMessage;
-
 
79
use LeadersLinked\Mapper\ChatGroupMessageMapper;
-
 
80
use LeadersLinked\Mapper\ChatGroupUserMessageMapper;
-
 
81
use LeadersLinked\Mapper\AbuseReportMapper;
-
 
82
use LeadersLinked\Mapper\UserBlockedMapper;
-
 
83
use LeadersLinked\Model\UserBlocked;
Línea 68... Línea 84...
68
 
84
 
69
class HelperController extends AbstractActionController
85
class HelperController extends AbstractActionController
70
{
86
{
71
    /**
87
    /**
Línea 2440... Línea 2456...
2440
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
2456
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
2441
        ]);
2457
        ]);
2442
    }
2458
    }
Línea -... Línea 2459...
-
 
2459
    
-
 
2460
    
-
 
2461
    public function abuseReportAction() 
-
 
2462
    {
-
 
2463
        $request = $this->getRequest();
-
 
2464
        
-
 
2465
        if ($request->isPost()) {
-
 
2466
            
-
 
2467
            $dataPost = $request->getPost()->toArray();
-
 
2468
            
-
 
2469
            $form = new CreateForm();
-
 
2470
            $form->setData($dataPost);
-
 
2471
            
-
 
2472
            if(!$form->isValid()) {
-
 
2473
                $messages = [];
-
 
2474
                
-
 
2475
                
-
 
2476
                
-
 
2477
                $form_messages = (array) $form->getMessages();
-
 
2478
                foreach($form_messages  as $fieldname => $field_messages)
-
 
2479
                {
-
 
2480
                    
-
 
2481
                    $messages[$fieldname] = array_values($field_messages);
-
 
2482
                }
-
 
2483
                
-
 
2484
                return new JsonModel([
-
 
2485
                    'success'   => false,
-
 
2486
                    'data'   => $messages
-
 
2487
                ]);
-
 
2488
                
-
 
2489
            }
-
 
2490
            
-
 
2491
            $dataPost = (array) $form->getData();
-
 
2492
 
-
 
2493
            $currentNetworkPlugin = $this->plugin('currentNetworkPlugin');
-
 
2494
            $network =  $currentNetworkPlugin->getNetwork();
-
 
2495
            
-
 
2496
            
-
 
2497
            $currentUserPlugin = $this->plugin('currentUserPlugin');
-
 
2498
            $currentUser = $currentUserPlugin->getUser();
-
 
2499
            
-
 
2500
            $id     = $this->params()->fromRoute('id');
-
 
2501
            $type   = $this->params()->fromRoute('type');
-
 
2502
 
-
 
2503
            $blockUser = $dataPost['block_user'] == 'y';
-
 
2504
            
-
 
2505
            $abuseReport = new AbuseReport();
-
 
2506
            $abuseReport->network_id = $network->id;
-
 
2507
            $abuseReport->user_reporting_id = $currentUser->id;
-
 
2508
            $abuseReport->status = AbuseReport::STATUS_PENDING;
-
 
2509
            $abuseReport->comment = $dataPost['comment'];
-
 
2510
            $abuseReport->reason = $dataPost['reason'];
-
 
2511
            
-
 
2512
            
-
 
2513
            
-
 
2514
            
-
 
2515
            switch($type)
-
 
2516
            {
-
 
2517
                case 'feed' : 
-
 
2518
                    $feedMapper = FeedMapper::getInstance($this>adapter);
-
 
2519
                    $feed = $feedMapper->fetchOneByUuid($id);
-
 
2520
                    if(!$feed || $feed->status != Feed::STATUS_PUBLISHED || $feed->network_id != $network->id) {
-
 
2521
                        
-
 
2522
                        return new JsonModel([
-
 
2523
                            'success' => false,
-
 
2524
                            'data' => 'ERROR_ABUSE_REPORT_CONTENT_NOT_AVAILABLE'
-
 
2525
                        ]);
-
 
2526
                    }
-
 
2527
                    
-
 
2528
                    if($feed->user_id == 1) {
-
 
2529
                        return new JsonModel([
-
 
2530
                            'success' => false,
-
 
2531
                            'data' => 'ERROR_ABUSE_REPORT_CONTENT_OWNER_SYSADMIN'
-
 
2532
                        ]);
-
 
2533
                    }
-
 
2534
                    
-
 
2535
                    if($feed->user_id == $currentUser->id) {
-
 
2536
                        return new JsonModel([
-
 
2537
                            'success' => false,
-
 
2538
                            'data' => 'ERROR_ABUSE_REPORT_CONTENT_OWNER_IS_YOURSELF'
-
 
2539
                        ]);
-
 
2540
                    }
-
 
2541
 
-
 
2542
                    $abuseReport->related_id        =  $feed->id;
-
 
2543
                    $abuseReport->user_reported_id  = $feed->user_id;
-
 
2544
                    $abuseReport->type              = AbuseReport::TYPE_FEED;
-
 
2545
                   
-
 
2546
                    
-
 
2547
                    
-
 
2548
                    break; 
-
 
2549
                    
-
 
2550
                case 'post' :
-
 
2551
                    $postMapper = PostMapper::getInstance($this->adapter);
-
 
2552
                    $post = $postMapper->fetchOneByUuid($id);
-
 
2553
                    if(!$post || $post->status != Post::STATUS_ACTIVE || $post->network_id != $network->id) {
-
 
2554
                        
-
 
2555
                        return new JsonModel([
-
 
2556
                            'success' => false,
-
 
2557
                            'data' => 'ERROR_ABUSE_REPORT_CONTENT_NOT_AVAILABLE'
-
 
2558
                        ]);
-
 
2559
                    }
-
 
2560
                    
-
 
2561
                    if($post->user_id == 1) {
-
 
2562
                        return new JsonModel([
-
 
2563
                            'success' => false,
-
 
2564
                            'data' => 'ERROR_ABUSE_REPORT_CONTENT_OWNER_SYSADMIN'
-
 
2565
                        ]);
-
 
2566
                    }
-
 
2567
                    
-
 
2568
                    
-
 
2569
                    if($post->user_id == $currentUser->id) {
-
 
2570
                        return new JsonModel([
-
 
2571
                            'success' => false,
-
 
2572
                            'data' => 'ERROR_ABUSE_REPORT_CONTENT_OWNER_IS_YOURSELF'
-
 
2573
                        ]);
-
 
2574
                    }
-
 
2575
                    
-
 
2576
                    
-
 
2577
                    $abuseReport->related_id        = $post->id;
-
 
2578
                    $abuseReport->user_reported_id  = $post->user_id;
-
 
2579
                    $abuseReport->type              = AbuseReport::TYPE_POST;
-
 
2580
                    
-
 
2581
                    break; 
-
 
2582
                    
-
 
2583
                    
-
 
2584
                case 'comment' :
-
 
2585
                    $commentMapper = CommentMapper::getInstance($this->adapter);
-
 
2586
                    $comment = $commentMapper->fetchOneByUuid($id);
-
 
2587
                    if(!$comment || $comment->network_id != $network->id || $comment->status != Comment::STATUS_PUBLISHED) {
-
 
2588
                        
-
 
2589
                        return new JsonModel([
-
 
2590
                            'success' => false,
-
 
2591
                            'data' => 'ERROR_ABUSE_REPORT_CONTENT_NOT_AVAILABLE'
-
 
2592
                        ]);
-
 
2593
                    }
-
 
2594
                    
-
 
2595
                    if($comment->user_id == 1) {
-
 
2596
                        return new JsonModel([
-
 
2597
                            'success' => false,
-
 
2598
                            'data' => 'ERROR_ABUSE_REPORT_CONTENT_OWNER_SYSADMIN'
-
 
2599
                        ]);
-
 
2600
                    }
-
 
2601
                    
-
 
2602
                    if($comment->user_id == $currentUser->id) {
-
 
2603
                        return new JsonModel([
-
 
2604
                            'success' => false,
-
 
2605
                            'data' => 'ERROR_ABUSE_REPORT_CONTENT_OWNER_IS_YOURSELF'
-
 
2606
                        ]);
-
 
2607
                    }
-
 
2608
                    
-
 
2609
                    $abuseReport->related_id        = $comment->id;
-
 
2610
                    $abuseReport->user_reported_id  = $comment->user_id;
-
 
2611
                    $abuseReport->type              = AbuseReport::TYPE_COMMENT;
-
 
2612
                    
-
 
2613
                    break; 
-
 
2614
                    
-
 
2615
                    
-
 
2616
                case 'message' :
-
 
2617
                    $messageMapper = MessageMapper::getInstance($this->adapter);
-
 
2618
                    $message = $messageMapper->fetchOneByUuid($id);
-
 
2619
                    if(!$message || $message->receiver_id != $currentUser->id || $message->receiver_status != Message::STATUS_NORMAL) {
-
 
2620
                        
-
 
2621
                        return new JsonModel([
-
 
2622
                            'success' => false,
-
 
2623
                            'data' => 'ERROR_ABUSE_REPORT_CONTENT_NOT_AVAILABLE'
-
 
2624
                        ]);
-
 
2625
                    }
-
 
2626
                    
-
 
2627
                    if($message->sender_id == 1) {
-
 
2628
                        return new JsonModel([
-
 
2629
                            'success' => false,
-
 
2630
                            'data' => 'ERROR_ABUSE_REPORT_CONTENT_OWNER_SYSADMIN'
-
 
2631
                        ]);
-
 
2632
                    }
-
 
2633
                    
-
 
2634
                    $abuseReport->related_id        = $message->id;
-
 
2635
                    $abuseReport->user_reported_id  = $message->sender_id;
-
 
2636
                    $abuseReport->type              = AbuseReport::TYPE_INMAIL_MESSAGE;
-
 
2637
                    
-
 
2638
                    break; 
-
 
2639
                    
-
 
2640
                case 'chat-message' :
-
 
2641
                    $messageMapper = ChatMessageMapper::getInstance($this->adapter);
-
 
2642
                    $message = $messageMapper->fetchOneByUuid($id);
-
 
2643
                    if(!$message || $message->to_id != $currentUser->id || $message->status != ChatMessage::STATUS_PUBLISHED) {
-
 
2644
                        
-
 
2645
                        return new JsonModel([
-
 
2646
                            'success' => false,
-
 
2647
                            'data' => 'ERROR_ABUSE_REPORT_CONTENT_NOT_AVAILABLE'
-
 
2648
                        ]);
-
 
2649
                    }
-
 
2650
                    
-
 
2651
                    if($message->from_id == 1) {
-
 
2652
                        return new JsonModel([
-
 
2653
                            'success' => false,
-
 
2654
                            'data' => 'ERROR_ABUSE_REPORT_CONTENT_OWNER_SYSADMIN'
-
 
2655
                        ]);
-
 
2656
                    }
-
 
2657
                    
-
 
2658
                    $abuseReport->related_id        = $message->id;
-
 
2659
                    $abuseReport->user_reported_id  = $message->from_id;
-
 
2660
                    $abuseReport->type              = AbuseReport::TYPE_CHAT_USER_MESSAGE;
-
 
2661
                    
-
 
2662
                    break; 
-
 
2663
                    
-
 
2664
                case 'chat-group-message' :
-
 
2665
                    $messageMapper = ChatGroupMessageMapper::getInstance($this->adapter);
-
 
2666
                    $message = $messageMapper->fetchOne($id);
-
 
2667
                    if(!$message || $message->status != ChatMessage::STATUS_PUBLISHED) {
-
 
2668
                        
-
 
2669
                        return new JsonModel([
-
 
2670
                            'success' => false,
-
 
2671
                            'data' => 'ERROR_ABUSE_REPORT_CONTENT_NOT_AVAILABLE'
-
 
2672
                        ]);
-
 
2673
                    }
-
 
2674
                    
-
 
2675
                    $userMessageMapper = ChatGroupUserMessageMapper::getInstance($this->adapter);
-
 
2676
                    $userMessage = $userMessageMapper->fetchOneByIdMessageIdAndReceiverId($message->id, $currentUser->id);
-
 
2677
                    if(!$userMessage) {
-
 
2678
                        
-
 
2679
                        return new JsonModel([
-
 
2680
                            'success' => false,
-
 
2681
                            'data' => 'ERROR_ABUSE_REPORT_CONTENT_NOT_AVAILABLE'
-
 
2682
                        ]);
-
 
2683
                    }
-
 
2684
                    
-
 
2685
                    
-
 
2686
                    if($message->sender_id == 1) {
-
 
2687
                        return new JsonModel([
-
 
2688
                            'success' => false,
-
 
2689
                            'data' => 'ERROR_ABUSE_REPORT_CONTENT_OWNER_SYSADMIN'
-
 
2690
                        ]);
-
 
2691
                    }
-
 
2692
                    
-
 
2693
                    $abuseReport->related_id        = $message->id;
-
 
2694
                    $abuseReport->user_reported_id  = $message->sender_id;
-
 
2695
                    $abuseReport->type              = AbuseReport::TYPE_CHAT_USER_MESSAGE;
-
 
2696
                    
-
 
2697
                    break; 
-
 
2698
            }
-
 
2699
 
-
 
2700
            $abuseReportMapper = AbuseReportMapper::getInstance($this->adapter);
-
 
2701
            if($abuseReportMapper->insert($abuseReport)) {
-
 
2702
                
-
 
2703
                if($blockUser) {
-
 
2704
                    
-
 
2705
                    $userBlockedMapper = UserBlockedMapper::getInstance($this->adapter);
-
 
2706
                    $userBlocked = $userBlockedMapper->fetchOneByUserIdAndBlockedId($abuseReport->user_reporting_id, $abuseReport->user_reporting_id);
-
 
2707
                    if($userBlocked) {
-
 
2708
                        
-
 
2709
                        
-
 
2710
                        return new JsonModel([
-
 
2711
                            'success' => true,
-
 
2712
                            'data' => [
-
 
2713
                                'message' => 'LABEL_ABUSE_REPORT_SENT_WITH_BLOCK_USER',
-
 
2714
                                'block' => true
-
 
2715
                            ]
-
 
2716
                        ]);
-
 
2717
                        
-
 
2718
                    } else {
-
 
2719
                        
-
 
2720
                        $userBlocked = new UserBlocked();
-
 
2721
                        $userBlocked->user_id = $abuseReport->user_reporting_id;
-
 
2722
                        $userBlocked->blocked_id = $abuseReport->user_reported_id;
-
 
2723
                        
-
 
2724
                        if($userBlockedMapper->insert($userBlocked)) {
-
 
2725
                            return new JsonModel([
-
 
2726
                                'success' => true,
-
 
2727
                                'data' => [
-
 
2728
                                    'message' => 'LABEL_ABUSE_REPORT_SENT_WITH_BLOCK_USER',
-
 
2729
                                    'block' => true
-
 
2730
                                ]
-
 
2731
                            ]);
-
 
2732
                            
-
 
2733
                        } else {
-
 
2734
                            return new JsonModel([
-
 
2735
                                'success' => true,
-
 
2736
                                'data' => [
-
 
2737
                                    'message' => 'LABEL_ABUSE_REPORT_SENT_WITHOUT_BLOCK_USER',
-
 
2738
                                    'block' => false
-
 
2739
                                ]
-
 
2740
                            ]);
-
 
2741
                            
-
 
2742
                            
-
 
2743
                        }
-
 
2744
                    }
-
 
2745
                    
-
 
2746
                    
-
 
2747
                } else {
-
 
2748
                    return new JsonModel([
-
 
2749
                        'success' => true,
-
 
2750
                        'data' => [
-
 
2751
                            'message' => 'LABEL_ABUSE_REPORT_SENT_WITHOUT_BLOCK_USER',
-
 
2752
                            'block' => false
-
 
2753
                        ]
-
 
2754
                    ]);
-
 
2755
                }
-
 
2756
                
-
 
2757
                
-
 
2758
            } else {
-
 
2759
                return new JsonModel([
-
 
2760
                    'success' => false,
-
 
2761
                    'data' => 'ERROR_ABUSE_REPORT_NOT_SENT' 
-
 
2762
                ]);
-
 
2763
            }
-
 
2764
            
-
 
2765
            
-
 
2766
            
-
 
2767
            
-
 
2768
            
-
 
2769
       
-
 
2770
            
-
 
2771
            
-
 
2772
        }
-
 
2773
        return new JsonModel([
-
 
2774
            'success' => false,
-
 
2775
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
-
 
2776
        ]);
-
 
2777
        
-
 
2778
        
-
 
2779
    }
Línea 2443... Línea 2780...
2443
    
2780