From e0218e91c2de40466fb4089ddb1dcc067d8434f9 Mon Sep 17 00:00:00 2001 From: Michael McGrath Date: Wed, 27 Feb 2008 18:15:44 -0600 Subject: [PATCH] Added json request, this is going to be completely redone --- fas/fas/json_request.py | 66 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 fas/fas/json_request.py diff --git a/fas/fas/json_request.py b/fas/fas/json_request.py new file mode 100644 index 0000000..6455528 --- /dev/null +++ b/fas/fas/json_request.py @@ -0,0 +1,66 @@ +import turbogears +from turbogears import controllers, expose, paginate, identity, redirect, widgets, validate, validators, error_handler +from turbogears.database import session + +import ldap +import cherrypy + +import fas.fasLDAP + +#from fas.fasLDAP import UserAccount +#from fas.fasLDAP import Person +#from fas.fasLDAP import Groups +#from fas.fasLDAP import UserGroup + +from fas.auth import * + +from fas.user import knownUser, usernameExists + +from textwrap import dedent + +import re + +class JsonRequest(controllers.Controller): + def __init__(self): + '''Create a JsonRequest Controller.''' + + @expose("json") + def index(self): + '''Perhaps show a nice explanatory message about groups here?''' + return dict(help='This is a json interface') + + @expose("json", allow_json=True) + def group_list(self, search='*'): + re_search = re.sub(r'\*', r'%', search).lower() + groups = Groups.query.filter(Groups.name.like(re_search)).order_by('name') + group_list = {} + #return dict(groups=groups) + for group in groups: + group_list[group.id] = {'name' : group.name, + 'id' : group.id, + 'display_name' : group.display_name, + 'owner_id' : group.owner_id, + 'group_type' : group.group_type, + 'prerequisite_id' : group.prerequisite_id, + 'creation' : group.creation, + } + + return dict(group_list=group_list) + + + @expose("json", allow_json=True) + def people_list(self, search='*'): + re_search = re.sub(r'\*', r'%', search).lower() + people = People.query.filter(People.username.like(re_search)).order_by('username') + people_list = {} + for person in people: + people_list[person.id] = {'id' : person.id, + 'username' : person.username, + 'human_name' : person.human_name, + 'ssh_key' : person.ssh_key, + 'password' : person.password + } + + + return dict(people_list=people_list) +