Example #1
0
	def servicelist(self,CntType,Cnt):
		print("servicelist() called")
		postvars = cgi.parse_qs(Cnt, keep_blank_values=1)
		print("postvars:"+str(postvars))
		print("    Calling methode.. exploring")
		url = "http://"+postvars["server"][0]+"/adxwsvc/services/CAdxWebServiceXmlCC?wsdl"
		try:
			client = Client(url)
			methodes = []
			for sd in client.sd :
				for port in sd.ports:
					for method in port[0].methods:
						methodes.append(str(method))
							
			
			CallContext = client.factory.create('CAdxCallContext')
			CallContext.codeLang = "FRA"
			CallContext.codeUser = postvars["user"]
			CallContext.password = postvars["pass"]
			CallContext.poolAlias = postvars["poolalias"]
			CallContext.poolId = None
			CallContext.requestConfig = None
			
			publicName = "AWE"
			objectKeys = client.factory.create('ArrayOfCAdxParamKeyValue')
			listSize = 100
			
			#-- appel au web service list objet AWE
			xmlWSLIST = client.service.query(CallContext,publicName,objectKeys,listSize)
			RetCnt = PXSPage.loadServicelist(methodes)
		except URLError as e:
			RetCnt = PXSPage.loadError(["URLError: can't reach server: "+url,"reason: "+str(e.reason)])
		CntType = 'text/html'
		return (202,RetCnt,CntType)
Example #2
0
	def do_GET(self):
		print("New GET req path:"+self.path)
		contentType = 'text/html'

		if 'Content-type' in self.headers:
			contentType = self.headers['Content-type']
			
		#-- gestion des requette http classique, 'fichier' , *.html, *.css, ...
		if (contentType == 'text/html'):
			docPath = "%s%s" % (self.server.docRoot, self.path)
			errorPath = "%s/not-found.html" % self.server.docRoot 
			unauthorisedPath = "%s/unauthorized.html" % self.server.docRoot 
			doc = ""
			if self.path.startswith('../'):
				code = 404
			elif docPath.endswith('/'):
				print("loading loadIndex()")
				doc = PXSPage.loadIndex()
				code = 200
			else:
				code = 404
			
			result = (code, doc, contentType)
		#-- gestion des requette ajax GET
		else:
			extractedpath = self.path.split('?')[0]
			so = self.Session()
			try:
				#-- appel au fcontion defini plus loin grace au dictionnaire 'getFunctionDict' cf EDServiceDescriptor.py
				#-- exemple : @service_descriptor("GET",5,"/ajax/search") 
				#--           la requete get pour l'url '/ajax/search' applera la fonction décorée
				#-- 		  le second parametre (5) donne les limitations en fonction du userpower cf EDServiceDescriptor.py et EDSessionElement.py
				#--					= 0 : fonction accessible en anonym
				#--					= 5 : user authentifier
				#--					> 5 : il faudra que le user soit trouvé dans la bdd avec un userpower > 5 (champs de la bdd)
				result = getFunctionDict[extractedpath](self,contentType,"",so)
			except KeyError, e:
				self.log_message("KeyError Error!"+str(e))
				result = (404,json.dumps({ "status": "Unhandeled request!" }),contentType)
			except EDPermitionException, e:
				self.log_message("Permition Error!"+str(e.value))
				result = (401,json.dumps({ "status": "e.value!" }),contentType)
Example #3
0
		contentType = self.headers['Content-type']
		
		try:
			#-- appel au fcontion defini plus loin grace au dictionnaire 'postFunctionDict' cf EDServiceDescriptor.py
			#-- exemple : @service_descriptor("POST",5,"/ajax/search") 
			#--           la requete post pour l'url '/ajax/search' applera la fonction décoré 
			#-- 		  le second parametre (5) donne les limitations en fonction du userpower cf EDServiceDescriptor.py et EDSessionElement.py
			#--					= 0 : fonction accessible en anonym
			#--					= 5 : user authentifier
			#--					> 5 : il faudra que le user soit trouvé dans la bdd avec un userpower > 5 (champs de la bdd)
			result = postFunctionDict[self.path](self,contentType,content)
		except KeyError, e:
			self.log_message(e)
			result = (404,json.dumps({ "status": "Unhandeled request!" }),contentType)
		
		doc = PXSPage.loadIndex()
		self.done(*result)
	
	
	@service_descriptor("POST",0,"/servicelist")
	def servicelist(self,CntType,Cnt):
		print("servicelist() called")
		postvars = cgi.parse_qs(Cnt, keep_blank_values=1)
		print("postvars:"+str(postvars))
		print("    Calling methode.. exploring")
		url = "http://"+postvars["server"][0]+"/adxwsvc/services/CAdxWebServiceXmlCC?wsdl"
		try:
			client = Client(url)
			methodes = []
			for sd in client.sd :
				for port in sd.ports: