OwlCyberSecurity - MANAGER
Edit File: post.py
# # # Copyright (c) 2005-2017 Apple Inc. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # """ CalDAV POST method. """ __all__ = ["http_POST"] from txweb2 import responsecode from txweb2.http import HTTPError from twext.python.log import Logger from twisted.internet.defer import inlineCallbacks, returnValue from twistedcaldav.config import config log = Logger() @inlineCallbacks def http_POST(self, request): # POST can only target an existing resource if not self.exists(): log.error("Resource not found: {s!r}", s=self) raise HTTPError(responsecode.NOT_FOUND) # POST can support many different APIs # First look at query params if request.params: if request.params == "add-member": if config.EnableAddMember and hasattr(self, "POST_handler_add_member"): request.submethod = "add-member" result = (yield self.POST_handler_add_member(request)) returnValue(result) # Look for query arguments if request.args: action = request.args.get("action", ("",)) if len(action) == 1: action = action[0] if hasattr(self, "POST_handler_action"): request.submethod = action result = (yield self.POST_handler_action(request, action)) returnValue(result) # Content-type handlers contentType = request.headers.getHeader("content-type") if contentType: if hasattr(self, "POST_handler_content_type"): result = (yield self.POST_handler_content_type(request, (contentType.mediaType, contentType.mediaSubtype))) returnValue(result) returnValue(responsecode.FORBIDDEN)