Beispiel #1
0
 /**
  *
  * Process HTTP PUT request on users
  *
  *    users/{userid}/groups 
  *
  * @param array $segments
  * @param array $data
  */
 private function PUT_users($segments, $data)
 {
     /*
      * Mandatory {userid}
      */
     if (empty($segments[2]) || !ctype_digit($segments[1])) {
         return RestoLogUtil::httpError(404);
     }
     /*
      * Get user
      */
     $user = new RestoUser($this->context->dbDriver->get(RestoDatabaseDriver::USER_PROFILE, array('userid' => $segments[1])), $this->context);
     if ($segments[2] === 'groups') {
         /*
          * Update groups
          */
         if (!isset($data['groups'])) {
             RestoLogUtil::httpError(400, 'Groups is not set');
         }
         return $user->addGroups($data['groups']);
     } else {
         if ($segments[2] === 'activate') {
             /*
              * Activate user
              */
             if ($this->context->dbDriver->execute(RestoDatabaseDriver::ACTIVATE_USER, array('userid' => $segments[1], 'activationCode' => null, 'userAutoValidation' => false))) {
                 RestoLogUtil::success('User activated');
             } else {
                 RestoLogUtil::httpError(500);
             }
         } else {
             if ($segments[2] === 'deactivate') {
                 /*
                  * Deactivate user
                  */
                 if ($this->context->dbDriver->execute(RestoDatabaseDriver::DEACTIVATE_USER, array('userid' => $segments[1]))) {
                     RestoLogUtil::success('User deactivated');
                 } else {
                     RestoLogUtil::httpError(500);
                 }
             } else {
                 if ($segments[2] === 'validate') {
                     /*
                      * Validate user
                      */
                     if ($this->context->dbDriver->execute(RestoDatabaseDriver::VALIDATE_USER, array('userid' => $segments[1], 'validatedBy' => $this->user->profile['userid']))) {
                         RestoLogUtil::success('User validated');
                     } else {
                         RestoLogUtil::httpError(500);
                     }
                 } else {
                     if ($segments[2] === 'unvalidate') {
                         /*
                          * Unvalidate user
                          */
                         if ($this->context->dbDriver->execute(RestoDatabaseDriver::UNVALIDATE_USER, array('userid' => $segments[1]))) {
                             RestoLogUtil::success('User unvalidated');
                         } else {
                             RestoLogUtil::httpError(500);
                         }
                     } else {
                         return RestoLogUtil::httpError(404);
                     }
                 }
             }
         }
     }
 }