def get_account_id(self, identity_url): with grab_connection('main') as conn: return get_scalar( conn, 'select ref_user_account_id from openid_accounts where openid_identifier = %(i)s', { 'i': identity_url }, 'ref_user_account_id')
def create(self, sessionKey, requestKey, data=None): """ Creates a database record in the unique_requests table foor the requestKey/sessionKey combination and returns the unique value generated. """ value = binascii.hexlify(os.urandom(20)).decode('ascii') print('Random value: {0}'.format(value)) with grab_connection('main') as connection: execute_action(connection, """ delete from unique_requests where session_key = %(s)s and request_key = %(r)s """, { 's': sessionKey, 'r': requestKey }) execute_action(connection, """ insert into unique_requests (session_key, request_key, request_value) values (%(s)s, %(r)s, %(v)s) """, { 's': sessionKey, 'r': requestKey, 'v': value }) if data: execute_action(connection, """ update unique_requests set request_data = %(d)s where session_key = %(s)s and request_key = %(r)s """, { 'd': data, 's': sessionKey, 'r': requestKey }) return value
def confirm(self, sessionKey, request, firstName, lastName, userName, oidIdentifier, email): u = UniqueRequest() if not u.exists(sessionKey=sessionKey, requestKey='add_openid.new_account', value=request): raise cherrypy.HTTPError(400, 'Invalid request') with grab_connection('main') as conn: u.delete(connection=conn, sessionKey=sessionKey, requestKey='add_openid.new_account') id = UserAccount().create(connection=conn, params={ 'first_name': firstName, 'last_name': lastName, 'user_name': userName, 'email': email }) OpenIdAccount().create(connection=conn, userAccountId=id, oidIdentifier=oidIdentifier) SessionHelper().push('user.account_id', id) raise cherrypy.HTTPRedirect('/')
def index(self, sessionKey, request): """ The user has granted permission to associate the OpenID identifier with their existing user account. """ # Try to consume the given request u = UniqueRequest() if not u.exists(sessionKey=sessionKey, requestKey='add_openid.existing_account', value=request): raise cherrypy.HTTPError(400, 'Invalid request') dataParts = u.get_data(sessionKey=sessionKey, requestKey='add_openid.existing_account').split('|') id = int(dataParts[0]) with grab_connection('main') as conn: u.delete(connection=conn, sessionKey=sessionKey, requestKey='add_openid.existing_account') OpenIdAccount().create(connection=conn, userAccountId=id, oidIdentifier=dataParts[1]) SessionHelper().push('user.account_id', id) raise cherrypy.HTTPRedirect('/')
def read(self): o = {} # reasonable defaults o['layout'] = 'fixed' o['jQueryUiTheme'] = 'smoothness' i = SessionHelper().peek('user.account_id') if not i is None: with grab_connection('main') as conn: data = get_row(conn, ''' select ui_layout, ui_theme from user_account_ui_settings where ref_user_account_id = %(i)s ''', { 'i': i }) if not data is None: o['layout'] = data['ui_layout'] o['jQueryUiTheme'] = data['ui_theme'] return o
def read(self): o = {} userAccountId = SessionHelper().peek('user.account_id') if not userAccountId is None: with grab_connection('main') as conn: data = get_row( conn, """ select user_name, first_name, last_name, email from user_accounts where user_account_id = %(i)s """, { 'i': userAccountId }) if data: o['userAccountId'] = userAccountId o['userName'] = data['user_name'] o['firstName'] = data['first_name'] o['lastName'] = data['last_name'] o['email'] = data['email'] return o
def delete_all(cls): with grab_connection('main') as conn: cursor = conn.cursor() cursor.execute('delete from testing.animals')
def insert_several(cls): with grab_connection('main') as conn: data = [{'n': 'zebra'}, {'n': 'gorilla'}, {'n': 'honey bee'}] cursor = conn.cursor() cursor.executemany('insert into testing.animals (animal_name) values (%(n)s)', data)
def get_all(cls): with grab_connection('main') as conn: cursor = conn.cursor(cursor_factory=psycopg2.extras.RealDictCursor) cursor.execute('select * from testing.animals') return cursor.fetchall()