annotate restService/getPurls.py @ 28:246049db5466

getImagePath askes now the md server for the image path new module image.py to handle this
author dwinter
date Wed, 13 Mar 2013 15:15:27 +0100
parents f748e2b684c9
children bcd8076ff7ec
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
19
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
1 '''
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
2 Register purls at the server
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
3 Created on 22.11.2012
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
4
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
5 @author: dwinter
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
6 '''
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
7
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
8 import web
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
9 import base64
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
10 import re
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
11 import config
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
12 from managePurls.manageIndexMetaPURLs import IndexMetaPURLManager
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
13
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
14 class getPurls:
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
15
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
16 def __init__(self):
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
17 self.render = web.template.render(config.TEMPLATE_PATH)
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
18 self.purlManager = IndexMetaPURLManager()
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
19
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
20 def GET(self):
22
f748e2b684c9 bug in xml output fixed
dwinter
parents: 19
diff changeset
21
19
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
22 auth = web.ctx.env.get('HTTP_AUTHORIZATION')
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
23
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
24 authreq = False
22
f748e2b684c9 bug in xml output fixed
dwinter
parents: 19
diff changeset
25 if auth is None:#no authentification needed, SHOULD BE DONE VIA APACHE!!
f748e2b684c9 bug in xml output fixed
dwinter
parents: 19
diff changeset
26 #authreq = True
f748e2b684c9 bug in xml output fixed
dwinter
parents: 19
diff changeset
27 username = "internal user (Please replace with your username)"
19
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
28 else:
22
f748e2b684c9 bug in xml output fixed
dwinter
parents: 19
diff changeset
29
19
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
30 auth = re.sub('^Basic ','',auth)
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
31 username,password = base64.decodestring(auth).split(':')
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
32
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
33
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
34 if authreq:
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
35 web.header('WWW-Authenticate','Basic realm="Auth example"')
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
36 web.ctx.status = '401 Unauthorized'
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
37 return
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
38
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
39 return self.render.registerPurls(username)
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
40
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
41 def POST(self):
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
42 inp = web.input()
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
43
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
44 username=inp.get("userName",None)
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
45 amount=inp.get("amount",None)
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
46
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
47 if (username==None) or (amount==None):
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
48 raise web.badrequest("Username and amount have to be send!")
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
49
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
50 try:
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
51 amount=int(amount)
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
52 except:
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
53 raise web.badrequest("Amount is not an integer!")
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
54
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
55 if amount>10:
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
56 raise web.badrequest("Amount is to large (maximum 10)")
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
57
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
58 purls=[]
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
59 for i in range(amount):
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
60 purls.append(self.purlManager.register(user=username))
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
61
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
62
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
63 return self.render.registeredPurlsResponse(purls)
cce127a28fc9 added getpurls
dwinter
parents:
diff changeset
64