Beispiel #1
0
 /**
  * 
  * Process HTTP DELETE request on users
  *
  *     users/{userid}/groups/{groups}                     
  *     users/{userid}/rights         
  *     users/{userid}/rights/{collection}      
  *     users/{userid}/rights/{collection}/{featureid}            
  *
  * @param array $segments
  */
 private function DELETE_users($segments)
 {
     /*
      * Check route pattern
      */
     if (empty($segments[2]) || !ctype_digit($segments[1])) {
         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' && !empty($segments[3])) {
         /*
          * users/{userid}/groups/{groups}
          */
         return $user->removeGroups($segments[3]);
     } else {
         if ($segments[2] === 'rights') {
             /*
              * users/{userid}/rights
              */
             $user->removeRights(isset($segments[3]) ? $segments[3] : null, isset($segments[4]) ? $segments[4] : null);
             return RestoLogUtil::success('Rights updated', array('email' => $user->profile['email'], 'userid' => $user->profile['userid'], 'groups' => $user->profile['groups']));
         }
     }
     RestoLogUtil::httpError(404);
 }