Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev 1862 Rev 1979
Línea 72... Línea 72...
72
use LeadersLinked\Mapper\CompanyMicrolearningExtendUserStudentTypeMapper;
72
use LeadersLinked\Mapper\CompanyMicrolearningExtendUserStudentTypeMapper;
73
use LeadersLinked\Mapper\CompanyMicrolearningExtendUserSectorMapper;
73
use LeadersLinked\Mapper\CompanyMicrolearningExtendUserSectorMapper;
74
use Nullix\CryptoJsAes\CryptoJsAes;
74
use Nullix\CryptoJsAes\CryptoJsAes;
75
use LeadersLinked\Model\CompanyMicrolearningTopic;
75
use LeadersLinked\Model\CompanyMicrolearningTopic;
76
use LeadersLinked\Model\CompanyMicrolearningCapsule;
76
use LeadersLinked\Model\CompanyMicrolearningCapsule;
-
 
77
use LeadersLinked\Model\UserDeleted;
-
 
78
use LeadersLinked\Mapper\UserDeletedMapper;
Línea 77... Línea 79...
77
 
79
 
78
 
80
 
Línea 3092... Línea 3094...
3092
            'success' => false,
3094
            'success' => false,
3093
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
3095
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
3094
        ]);
3096
        ]);
3095
    }
3097
    }
Línea -... Línea 3098...
-
 
3098
    
-
 
3099
    public function deleteAccountAction()
-
 
3100
    {
-
 
3101
        
-
 
3102
        
-
 
3103
        $currentUserPlugin = $this->plugin('currentUserPlugin');
-
 
3104
        $user = $currentUserPlugin->getUser();
-
 
3105
        
-
 
3106
        
-
 
3107
        
-
 
3108
        $request = $this->getRequest();
-
 
3109
        
-
 
3110
        if($request->isGet()) {
-
 
3111
            
-
 
3112
            $this->sendEmailDeleteAccountKey($user);
-
 
3113
            
-
 
3114
            
-
 
3115
            return new JsonModel([
-
 
3116
                'success' => true,
-
 
3117
                'data' => [
-
 
3118
                    'message' => 'LABEL_DELETE_ACCOUNT_WE_HAVE_SENT_A_CONFIRMATION_CODE'
-
 
3119
                ]
-
 
3120
            ]);
-
 
3121
            
-
 
3122
        } else  if($request->isPost()) {
-
 
3123
            
-
 
3124
            $code = $this->params()->fromPost('code');
-
 
3125
            if(empty($code) && $code != $user->delete_account_key) {
-
 
3126
                
-
 
3127
                $this->sendEmailDeleteAccountKey($user);
-
 
3128
                
-
 
3129
                return new JsonModel([
-
 
3130
                    'success' => false,
-
 
3131
                    'data' => [
-
 
3132
                        'message' => 'ERROR_DELETE_ACCOUNT_CONFIRMATION_CODE_IS_WRONG'
-
 
3133
                    ]
-
 
3134
                ]);
-
 
3135
            }
-
 
3136
            
-
 
3137
            $delete_account_generated_on = strtotime($user->delete_account_generated_on);
-
 
3138
            $expiry_time = $delete_account_generated_on + $this->config['leaderslinked.security.delete_account_expired'];
-
 
3139
            
-
 
3140
            
-
 
3141
            if (time() > $expiry_time) {
-
 
3142
                
-
 
3143
                $this->sendEmailDeleteAccountKey($user) ;
-
 
3144
                
-
 
3145
                return new JsonModel([
-
 
3146
                    'success' => false,
-
 
3147
                    'data' => [
-
 
3148
                        'message' => 'ERROR_DELETE_ACCOUNT_CONFIRMATION_CODE_EXPIRED'
-
 
3149
                    ]
-
 
3150
                ]);
-
 
3151
                
-
 
3152
                
-
 
3153
            }
-
 
3154
            
-
 
3155
            $userDeleted  = new UserDeleted();
-
 
3156
            $userDeleted->user_id = $user->id;
-
 
3157
            $userDeleted->first_name = $user->first_name;
-
 
3158
            $userDeleted->last_name = $user->last_name;
-
 
3159
            $userDeleted->email = $user->email;
-
 
3160
            $userDeleted->image = $user->image;
-
 
3161
            $userDeleted->phone = $user->phone;
-
 
3162
            $userDeleted->pending = UserDeleted::PENDING_YES;
-
 
3163
            
-
 
3164
            
-
 
3165
            $userDeletedMapper = UserDeletedMapper::getInstance($this->adapter);
-
 
3166
            if ($userDeletedMapper->insert($userDeleted)) {
-
 
3167
                
-
 
3168
                $user->first_name = 'LABEL_DELETE_ACCOUNT_FIRST_NAME';
-
 
3169
                $user->last_name = 'LABEL_DELETE_ACCOUNT_LAST_NAME';
-
 
3170
                $user->email = '-';
-
 
3171
                $user->image = '';
-
 
3172
                $user->usertype_id = UserType::USER_DELETED;
-
 
3173
                $user->status = User::STATUS_DELETED;
-
 
3174
                $user->delete_account_key = '';
-
 
3175
                $user->delete_account_generated_on = '';
-
 
3176
                
-
 
3177
                $userMapper = UserMapper::getInstance($this->adapter);
-
 
3178
                if($userMapper->update($user)) {
-
 
3179
                    
-
 
3180
                    $this->sendEmailDeleteAccountCompleted($user);
-
 
3181
                    
-
 
3182
                    return new JsonModel([
-
 
3183
                        'success' => true,
-
 
3184
                        'data' => [
-
 
3185
                            'message' => 'LABEL_DELETE_ACCOUNT_WE_HAVE_STARTED_DELETING_YOUR_DATA',
-
 
3186
                            'redirect_url' => $this->url()->fromRoute('signout'),
-
 
3187
                        ]
-
 
3188
                    ]);
-
 
3189
                    
-
 
3190
                    
-
 
3191
                } else {
-
 
3192
                    return new JsonModel([
-
 
3193
                        'success' => false,
-
 
3194
                        'data' => [
-
 
3195
                            'message' => $userDeletedMapper->getError()
-
 
3196
                        ]
-
 
3197
                    ]);
-
 
3198
                }
-
 
3199
                
-
 
3200
                
-
 
3201
                
-
 
3202
            } else {
-
 
3203
                return new JsonModel([
-
 
3204
                    'success' => false,
-
 
3205
                    'data' => [
-
 
3206
                        'message' => $userDeletedMapper->getError()
-
 
3207
                    ]
-
 
3208
                ]);
-
 
3209
            }
-
 
3210
 
-
 
3211
        }
-
 
3212
            
-
 
3213
            
-
 
3214
        return new JsonModel([
-
 
3215
            'success' => false,
-
 
3216
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
-
 
3217
        ]);
-
 
3218
    }
-
 
3219
    
-
 
3220
    private function sendEmailDeleteAccountKey($user) 
-
 
3221
    {
-
 
3222
        $delete_account_key = Functions::generatePassword(8);
-
 
3223
        
-
 
3224
        $userMapper = UserMapper::getInstance($this->adapter);
-
 
3225
        $userMapper->updateDeleteAccountKey($user->id, $delete_account_key);
-
 
3226
        
-
 
3227
        $emailTemplateMapper = EmailTemplateMapper::getInstance($this->adapter);
-
 
3228
        $emailTemplate = $emailTemplateMapper->fetchOne(EmailTemplate::ID_DELETE_ACCOUNT_CODE);
-
 
3229
        if($emailTemplate) {
-
 
3230
            $arrayCont = [
-
 
3231
                'firstname' => $user->first_name,
-
 
3232
                'lastname'  => $user->last_name,
-
 
3233
                'code'      => $delete_account_key,
-
 
3234
                'link'      => ''
-
 
3235
            ];
-
 
3236
            
-
 
3237
            $email = new QueueEmail($this->adapter);
-
 
3238
            $email->processEmailTemplate($emailTemplate, $arrayCont, $user->email, trim($user->first_name . ' ' . $user->last_name));
-
 
3239
        }
-
 
3240
    }
-
 
3241
    
-
 
3242
    
-
 
3243
    private function sendEmailDeleteAccountCompleted($user)
-
 
3244
    {
-
 
3245
 
-
 
3246
        $emailTemplateMapper = EmailTemplateMapper::getInstance($this->adapter);
-
 
3247
        $emailTemplate = $emailTemplateMapper->fetchOne(EmailTemplate::ID_DELETE_ACCOUNT_COMPLETED);
-
 
3248
        if($emailTemplate) {
-
 
3249
            $arrayCont = [
-
 
3250
                'firstname' => $user->first_name,
-
 
3251
                'lastname'  => $user->last_name,
-
 
3252
                'code'      => '',
-
 
3253
                'link'      => ''
-
 
3254
            ];
-
 
3255
            
-
 
3256
            $email = new QueueEmail($this->adapter);
-
 
3257
            $email->processEmailTemplate($emailTemplate, $arrayCont, $user->email, trim($user->first_name . ' ' . $user->last_name));
-
 
3258
        }
-
 
3259
    }
-
 
3260
    
3096
    
3261
    
3097
    /**
3262
    /**
3098
     * 
3263
     * 
3099
     * @param User $user
3264
     * @param User $user
3100
     * @param boolean $includeLogs
3265
     * @param boolean $includeLogs