Example #1
0
 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')
Example #2
0
 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
Example #3
0
 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('/')
     
Example #4
0
 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('/')
Example #5
0
 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
Example #6
0
 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
     
Example #7
0
 def delete_all(cls):
     with grab_connection('main') as conn:
         cursor = conn.cursor()
         cursor.execute('delete from testing.animals')
         
Example #8
0
 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)
Example #9
0
 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()