def _raise_timeout(user_id): length = self.failed_logins[user_ip_sid]["count"] timeout = (length - 2) * 30 details = e = UnauthorizedError("WOKAUTH0004E", {"seconds": timeout}) log_request(code, params, details, method, 403) raise cherrypy.HTTPError(403, e.message)
def wrapper(*args, **kwargs): method = 'POST' validate_method((method), self.role_key, self.admin_methods) try: self.lookup() if not self.is_authorized(): raise UnauthorizedError('WOKAPI0009E') model_args = list(self.model_args) request = parse_request() validate_params(request, self, action_name) if action_args is not None: model_args.extend( request[key] if key in request.keys() else None for key in action_args) action_fn = getattr(self.model, model_fn(self, action_name)) action_result = action_fn(*model_args) # log request reqParams = utf8_dict(self.log_args, request) RequestRecord( self.getRequestMessage(method, action_name) % reqParams, app=get_plugin_from_request(), req=method, user=cherrypy.session.get(USER_NAME, 'N/A')).log() if destructive is False or \ ('persistent' in self.info.keys() and self.info['persistent'] is True): return render_fn(self, action_result) except MissingParameter, e: raise cherrypy.HTTPError(400, e.message)
def wrapper(*args, **kwargs): # status must be always set in order to request be logged. # use 500 as fallback for "exception not handled" cases. status = 500 method = 'POST' validate_method((method), self.role_key, self.admin_methods) try: request = parse_request() validate_params(request, self, action_name) self.lookup() if not self.is_authorized(): raise UnauthorizedError('WOKAPI0009E') model_args = list(self.model_args) if action_args is not None: model_args.extend( request[key] if key in request.keys() else None for key in action_args ) action_fn = getattr(self.model, model_fn(self, action_name)) action_result = action_fn(*model_args) status = 200 if destructive is False or \ ('persistent' in self.info.keys() and self.info['persistent'] is True): result = render_fn(self, action_result) status = cherrypy.response.status return result except WokException, e: status = e.getHttpStatusCode() raise cherrypy.HTTPError(status, e.message)
def _raise_timeout(user_id): length = self.failed_logins[user_ip_sid]['count'] timeout = (length - 2) * 30 details = e = UnauthorizedError( 'WOKAUTH0004E', {'seconds': timeout}) log_request(code, params, details, method, 403) raise cherrypy.HTTPError(403, str(e))
def wrapper(*args, **kwargs): # status must be always set in order to request be logged. # use 500 as fallback for "exception not handled" cases. if protected is not None and protected: wokauth() details = None status = 500 method = 'POST' validate_method(method, self.admin_methods) try: request = parse_request() validate_params(request, self, action_name) self.lookup() if not self.is_authorized(): raise UnauthorizedError('WOKAPI0009E') model_args = list(self.model_args) if action_args is not None: model_args.extend( request[key] if key in request.keys() else None for key in action_args ) action_fn = getattr(self.model, model_fn(self, action_name)) action_result = action_fn(*model_args) status = 200 if destructive is False or ( 'persistent' in self.info.keys( ) and self.info['persistent'] is True ): result = render_fn(self, action_result) status = cherrypy.response.status return result except WokException as e: details = e status = e.getHttpStatusCode() raise cherrypy.HTTPError(status, str(e)) finally: # log request code = self.getRequestMessage(method, action_name) reqParams = utf8_dict(self.log_args, request) log_id = log_request( code, reqParams, details, method, status, class_name=get_class_name(self), action_name=action_name, ) if status == 202: save_request_log_id(log_id, action_result['id'])
def index(self, *args, **kargs): method = validate_method(('GET', 'DELETE', 'PUT'), self.role_key, self.admin_methods) try: self.lookup() if not self.is_authorized(): raise UnauthorizedError('WOKAPI0009E') result = {'GET': self.get, 'DELETE': self.delete, 'PUT': self.update}[method](*args, **kargs) except InvalidOperation, e: raise cherrypy.HTTPError(400, e.message)
def wrapper(*args, **kwargs): validate_method(('POST'), self.role_key, self.admin_methods) try: self.lookup() if not self.is_authorized(): raise UnauthorizedError('WOKAPI0009E') model_args = list(self.model_args) if action_args is not None: request = parse_request() model_args.extend(request[key] for key in action_args) action_fn = getattr(self.model, model_fn(self, action_name)) action_result = action_fn(*model_args) if destructive is False or \ ('persistent' in self.info.keys() and self.info['persistent'] is True): return render_fn(self, action_result) except MissingParameter, e: raise cherrypy.HTTPError(400, e.message)
def index(self, *args, **kargs): # status must be always set in order to request be logged. # use 500 as fallback for "exception not handled" cases. details = None status = 500 method = validate_method(('GET', 'DELETE', 'PUT'), self.admin_methods) try: self.lookup() if not self.is_authorized(): raise UnauthorizedError('WOKAPI0009E') result = { 'GET': self.get, 'DELETE': self.delete, 'PUT': self.update }[method](*args, **kargs) status = cherrypy.response.status except WokException as e: details = e status = e.getHttpStatusCode() raise cherrypy.HTTPError(status, str(e)) except cherrypy.HTTPError as e: status = e.status raise finally: # log request if method not in LOG_DISABLED_METHODS and status != 202: code = self.getRequestMessage(method) log_request( code, self.log_args, details, method, status, class_name=get_class_name(self), ) return result
def index(self, *args, **kargs): # status must be always set in order to request be logged. # use 500 as fallback for "exception not handled" cases. status = 500 method = validate_method(('GET', 'DELETE', 'PUT'), self.role_key, self.admin_methods) try: self.lookup() if not self.is_authorized(): raise UnauthorizedError('WOKAPI0009E') result = {'GET': self.get, 'DELETE': self.delete, 'PUT': self.update}[method](*args, **kargs) status = cherrypy.response.status except WokException, e: status = e.getHttpStatusCode() raise cherrypy.HTTPError(status, e.message)