Ejemplo n.º 1
0
 public function SaveUser($params)
 {
     $MEDIA_ID = isset($params[\Av\MediaUserModel::MEDIA_ID]) ? $params[\Av\MediaUserModel::MEDIA_ID] : null;
     $USER_ID = isset($params[\Av\MediaUserModel::USER_ID]) ? $params[\Av\MediaUserModel::USER_ID] : null;
     $SOCIAL_USER_ID = isset($params[\Av\MediaUserModel::SOCIAL_USER_ID]) ? $params[\Av\MediaUserModel::SOCIAL_USER_ID] : null;
     $STATUS = isset($params[\Av\MediaUserModel::STATUS]) ? $params[\Av\MediaUserModel::STATUS] : \Av\MediaUserModel::STATUS_ACTIVE;
     $ACCESS_TOKEN = isset($params[\Av\MediaUserModel::ACCESS_TOKEN]) ? $params[\Av\MediaUserModel::ACCESS_TOKEN] : null;
     $REFRESH_TOKEN = isset($params[\Av\MediaUserModel::REFRESH_TOKEN]) ? $params[\Av\MediaUserModel::REFRESH_TOKEN] : null;
     $ROLE_ID = isset($params[\Av\UserModel::ROLE_ID]) ? $params[\Av\UserModel::ROLE_ID] : null;
     $EMAIL = isset($params[\Av\UserModel::USER_EMAIL]) ? $params[\Av\UserModel::USER_EMAIL] : null;
     $DISPLAY_NAME = isset($params[\Av\UserModel::DISPLAY_NAME]) ? $params[\Av\UserModel::DISPLAY_NAME] : null;
     $oUserMapper = new \Av\UserModel();
     $oMediaUserMapper = new \Av\MediaUserModel();
     // 1. If USER_ID is not set - it is initial login or signup
     if (empty($USER_ID)) {
         //1.1 Check by EMAIL if user exists in "user" table
         if (empty($EMAIL)) {
             return false;
         }
         //            $this->AddDebug(__METHOD__ . " #" . __LINE__ . " email:" . print_r($EMAIL, true));
         $params_user = array(\Av\UserModel::USER_EMAIL => $EMAIL);
         $user_info = $oUserMapper->GetUserInfo($params_user);
         //            $this->AddDebug(__METHOD__ . " #" . __LINE__ . " user_info:" . print_r($user_info, true));
         if ($user_info === false) {
             //1.2 User does not exist. Create new.
             $params_user[\Av\UserModel::DISPLAY_NAME] = $DISPLAY_NAME;
             $params_user[\Av\UserModel::ROLE_ID] = $ROLE_ID;
             $params_user[\Av\UserModel::USER_STATUS] = $STATUS;
             $USER_ID = $oUserMapper->SaveUserInfo($params_user);
             //                $this->AddDebug(__METHOD__ . " #" . __LINE__ . " saved user_id {} params:" . print_r($params_user, true));
             if (empty($USER_ID) || $USER_ID === false) {
                 return false;
             }
         } else {
             $ROLE_ID = isset($user_info[\Av\UserModel::ROLE_ID]) ? $user_info[\Av\UserModel::ROLE_ID] : null;
             $USER_ID = isset($user_info[\Av\UserModel::USER_ID]) ? $user_info[\Av\UserModel::USER_ID] : null;
             $DISPLAY_NAME = isset($user_info[\Av\UserModel::DISPLAY_NAME]) ? $user_info[\Av\UserModel::DISPLAY_NAME] : null;
         }
     }
     $params_media_user = array(\Av\MediaUserModel::MEDIA_ID => (int) $MEDIA_ID, \Av\MediaUserModel::USER_ID => (int) $USER_ID, \Av\MediaUserModel::ACCESS_TOKEN => $ACCESS_TOKEN, \Av\MediaUserModel::SOCIAL_USER_ID => isset($SOCIAL_USER_ID) ? $SOCIAL_USER_ID : 'n/a', \Av\MediaUserModel::STATUS => $STATUS, \Av\MediaUserModel::REFRESH_TOKEN => isset($REFRESH_TOKEN) ? $REFRESH_TOKEN : null);
     // 2. Save new social media user credentials
     $bSaved = $oMediaUserMapper->SaveCredentials($params_media_user);
     $this->AddDebug(__METHOD__ . " #" . __LINE__ . " is  user saved with success {$bSaved}");
     // 3. return authenticated user credentials
     if ($bSaved !== false) {
         // 3. Save to auth object and ssession
         $params_login = array(\Av\AuthController::USER_ID => (int) $USER_ID, \Av\AuthController::USER_NAME => $DISPLAY_NAME, \Av\AuthController::USER_ROLE_ID => (int) $ROLE_ID);
         \Av\AuthController::LogIn($params_login);
     } else {
         return false;
     }
 }