Mercurial > p > roundup > code
comparison roundup/xmlrpc.py @ 4449:3f251efd5f48
Add "lookup" method to xmlrpc interface (Ralf Schlatterbeck)
| author | Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net> |
|---|---|
| date | Fri, 29 Oct 2010 10:41:39 +0000 |
| parents | 261c9f913ff7 |
| children | c9b85ca1f985 |
comparison
equal
deleted
inserted
replaced
| 4448:2784c239e6c8 | 4449:3f251efd5f48 |
|---|---|
| 97 result = cl.filter(search_matches, filterspec, sort=sort, group=group) | 97 result = cl.filter(search_matches, filterspec, sort=sort, group=group) |
| 98 check = security.hasPermission | 98 check = security.hasPermission |
| 99 x = [id for id in result if check('View', uid, classname, itemid=id)] | 99 x = [id for id in result if check('View', uid, classname, itemid=id)] |
| 100 return x | 100 return x |
| 101 | 101 |
| 102 def lookup(self, classname, key): | |
| 103 cl = self.db.getclass(classname) | |
| 104 uid = self.db.getuid() | |
| 105 prop = cl.getkey() | |
| 106 check = self.db.security.hasSearchPermission | |
| 107 if not check(uid, classname, 'id') or not check(uid, classname, prop): | |
| 108 raise Unauthorised('Permission to search %s denied'%classname) | |
| 109 return cl.lookup(key) | |
| 110 | |
| 102 def display(self, designator, *properties): | 111 def display(self, designator, *properties): |
| 103 classname, itemid = hyperdb.splitDesignator(designator) | 112 classname, itemid = hyperdb.splitDesignator(designator) |
| 104 cl = self.db.getclass(classname) | 113 cl = self.db.getclass(classname) |
| 105 props = properties and list(properties) or cl.properties.keys() | 114 props = properties and list(properties) or cl.properties.keys() |
| 106 props.sort() | 115 props.sort() |
