Example #1
0
 public function info($id)
 {
     $action = isset($_REQUEST['action']) ? $_REQUEST['action'] : false;
     $this->write('tab', isset($_REQUEST['tab']) ? $_REQUEST['tab'] : "");
     $reqUserId = Session::uid();
     $this->write('reqUserId', $reqUserId);
     $reqUser = new User();
     if ($reqUserId > 0) {
         $reqUser->findUserById($reqUserId);
         $budget = $reqUser->getBudget();
     }
     $this->write('reqUser', $reqUser);
     $is_runner = isset($_SESSION['is_runner']) ? $_SESSION['is_runner'] : 0;
     $is_payer = isset($_SESSION['is_payer']) ? $_SESSION['is_payer'] : 0;
     // admin posting data
     if (!empty($_POST) && ($is_runner || $is_payer) && !$action) {
         $user_id = (int) $_POST['user_id'];
         if (!empty($_POST['save-salary'])) {
             $field = 'salary';
             $value = mysql_real_escape_string($_POST['value']);
         } else {
             $field = $_POST['field'];
             $value = (int) $_POST['value'];
         }
         $updateUser = new User();
         if ($updateUser->findUserById($user_id)) {
             switch ($field) {
                 case 'salary':
                     $updateUser->setAnnual_salary($value);
                     Utils::systemNotification("A new salary has been set for @" . $updateUser->getNickname());
                     break;
                 case 'ispayer':
                     $updateUser->setIs_payer($value);
                     break;
                 case 'isrunner':
                     $updateUser->setIs_runner($value);
                     break;
                 case 'isinternal':
                     $updateUser->setIs_internal($value);
                     break;
                 case 'ispaypalverified':
                     $updateUser->setPaypal_verified($value);
                     if ($value) {
                         $updateUser->setHas_w2(false);
                     }
                     break;
                 case 'isw2employee':
                     $updateUser->setHas_w2($value);
                     if ($value) {
                         $updateUser->setPaypal_verified(false);
                         $updateUser->setw9_status('not-applicable');
                     }
                     break;
                 case 'manager':
                     $updateUser->setManager($value);
                     if ($value) {
                         $manager = new User();
                         $manager->findUserById($value);
                         // Send journal notification
                         Utils::systemNotification("The manager for @" . $updateUser->getNickname() . " is now set to @" . $manager->getNickname());
                     } else {
                         Utils::systemNotification("The manager for @" . $updateUser->getNickname() . " has been removed");
                     }
                     break;
                 case 'referrer':
                     $updateUser->setReferred_by($value);
                     if ($value) {
                         $referrer = new User();
                         $referrer->findUserById($value);
                         // Send journal notification
                         Utils::systemNotification("The referrer for @" . $updateUser->getNickname() . " is now set to @" . $referrer->getNickname());
                     } else {
                         Utils::systemNotification("The referrer for @" . $updateUser->getNickname() . " has been removed");
                     }
                     break;
                 case 'isactive':
                     $updateUser->setIs_active($value);
                     break;
                 default:
                     break;
             }
             $updateUser->save();
             $response = array('succeeded' => true, 'message' => 'User details updated successfully');
             echo json_encode($response);
             exit(0);
         } else {
             die(json_encode(array('succeeded' => false, 'message' => 'Error: Could not determine the user_id')));
         }
     }
     $user = new User();
     $user = User::find($id ? $id : Session::uid());
     $userId = $user->getId();
     /**
      * If we couldn't find a valid User, return an ErrorView
      */
     if (!$user->getId()) {
         $this->write('msg', 'That user doesn\'t exist.');
         $this->write('link', WORKLIST_URL);
         $this->view = new ErrorView();
         parent::run();
     }
     $this->write('userId', $userId);
     $this->write('user', $user);
     $this->write('Annual_Salary', $user->getAnnual_salary() > 0 ? $user->getAnnual_salary() : '');
     $this->write('manager', $user->getManager());
     $this->write('referred_by', $user->getReferred_by());
     if ($action == 'create-sandbox') {
         $result = array();
         try {
             if (!$is_runner) {
                 throw new Exception("Access Denied");
             }
             $args = array('unixusername', 'projects');
             foreach ($args as $arg) {
                 ${$arg} = mysql_real_escape_string($_REQUEST[$arg]);
             }
             $projectList = explode(",", str_replace(" ", "", $projects));
             // Create sandbox for user
             $sandboxUtil = new SandBoxUtil();
             $sandboxUtil->createSandbox($user->getUsername(), $user->getNickname(), $unixusername, $projectList);
             // If sb creation was successful, update users table
             $user->setHas_sandbox(1);
             $user->setUnixusername($unixusername);
             $user->setProjects_checkedout($projects);
             $user->save();
             // add to project_users table
             foreach ($projectList as $project) {
                 $project_id = Project::getIdFromRepo($project);
                 $user->checkoutProject($project_id);
             }
         } catch (Exception $e) {
             $result["error"] = $e->getMessage();
         }
         echo json_encode($result);
         die;
     }
     $reviewee_id = (int) $userId;
     $review = new Review();
     $this->write('reviewsList', $review->getReviews($reviewee_id, $reqUserId));
     $this->write('projects', $this->getProjectList());
     $user_projects = $user->getProjects_checkedout();
     $this->write('has_sandbox', count($user_projects) > 0);
     $users_favorite = new Users_Favorite();
     $favorite_enabled = 1;
     $favorite = $users_favorite->getMyFavoriteForUser($reqUserId, $userId);
     if (isset($favorite['favorite'])) {
         $favorite_enabled = $favorite['favorite'];
     }
     $favorite_count = $users_favorite->getUserFavoriteCount($userId);
     $this->write('favorite_count', $favorite_count);
     $this->write('favorite_enabled', $favorite_enabled);
     parent::run();
 }